invt_item_d
列のテーブルにインデックスがあり(item_id & branch_id & co_id)
ます。最初のクエリのプランの結果は でTABLE ACCESS FULL
、コストは です528
。2 番目のクエリの結果はINDEX FAST FULL SCAN
(私のインデックス) で、コストは27
です。
唯一の違いは、ご覧のとおり、選択した列が 2 番目のクエリのインデックスで使用されることです。
これに何か問題がありますか?そして、データベース管理レベルでこれを修正するにはどうすればよいか教えてください。
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 で、TABLE ACCESS FULL です。
select qty from invt_item_d
したがって、インデックスを使用するかどうかは関係ありません。これは正常だと言う人もいますが、これは本当に正常な動作ですか?