を行きますテーブルスキャン。SQLクエリは、私は2つのテーブルを持っている代わりに、インデックスベースのスキャン全表をスキャン
Execution Plan
----------------------------------------------------------
Plan hash value: 2290496975
----------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
----------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 3737 | 97162 | 85 (3)| 00:00:02 |
|* 1 | FILTER | | | | | |
| 2 | TABLE ACCESS FULL| BIG | 74718 | 1897K| 85 (3)| 00:00:02 |
|* 3 | TABLE ACCESS FULL| SMALL | 1 | 4 | 3 (0)| 00:00:01 |
----------------------------------------------------------------------------
Predicate Information (identified by operation id):
---------------------------------------------------
1 - filter("ID"=45 OR EXISTS (SELECT /*+ */ 0 FROM "SMALL" "SMALL"
WHERE "ID"=:B1))
3 - filter("ID"=:B1)
インデックスをスキャンするために常にクエリを書き換えることができる方法はありますか?このような
タイプミスがあることです - –
それはそのデータ型の文字列関連(VARCHAR2など)ではない列にLIKEを使用するための誤りだろうと思いましただからあなたは45から始まるIDを望んでいますか? 45,45029,451のように? –
はいjonあなたは正しいです – Ajitesh