invt_item_d
列上的表有一个索引(item_id & branch_id & co_id)
。第一个查询的计划结果是TABLE ACCESS FULL
,成本是528
,第二个查询的结果是INDEX FAST FULL SCAN
(我的索引),成本是27
。
唯一的区别是,如您所见,所选列用于第二个查询的索引。
这有什么问题吗?拜托,你能告诉我我应该怎么做才能在数据库管理级别解决这个问题?
select d.qty
from invt_item_d d
where d.item_id = 999
and d.branch_id = 888
and d.co_id = 777
select d.item_id
from invt_item_d d
where d.item_id = 999
and d.branch_id = 888
and d.co_id = 777
编辑:我做了一个新查询,这个查询的成本是 529,表访问权限已满。
select qty from invt_item_d
所以我是否使用索引并不重要。有人说这很正常,这真的是正常行为吗?