我有这个查询
SELECT Equipment.EquipmentId, ServiceStartDate FROM Service, Equipment
WHERE Service.EquipmentId = Equipment.EquipmentId
AND Vendor LIKE 'VEND: 1' AND ServiceType = 'failure';
以此计划为特色:
注意,它为连接字段使用散列连接。总费用是20,时间是4。
然后,我在EquipmentId上添加了一个索引,使用它作为外键(服务)。
CREATE INDEX service_equipid2 ON Service(EquipmentId)
同样的查询产生了这个计划: 总成本为22,时间为6。
它不应该仍然选择以前的计划吗?
(当我使用提示时,
SELECT /*+NO_INDEX(SERVICE)*/ Equipment.EquipmentId, ServiceStartDate
FROM Service, Equipment
WHERE Service.EquipmentId = Equipment.EquipmentId AND Vendor LIKE 'VEND: 1'
AND ServiceType = 'failure';
它返回第一个结果。)