お世話になります。
ORACLE SQLは、EUCレベルで少しかじって自分の業務には役立っているのですが、深い知識はありません。
社内にも詳しい方がいません。どなたかご教示下されば幸いです。
よろしくお願い致します。
前提・実現したいこと
SELECT文で、TB001 と TB002 をLEFT JOINしていますが、
INDEXを使っていなかったので、色々書き方を変えてみたのですが、
「試したこと」の様に記述すると、INDEXを使ってくれるようになりました。
(OBJECT BROWSER の実行計画で確認しました)
こんなことってあるのでしょうか?
実行計画のCOSTの数値は、「試したこと」の方が少なくなっていて、実行時間も早くなっています。
※TB002に、UNIQUE INDEX で COD(CHAR) が設定されています。
該当のソースコード
FROM TB001 A
LEFT JOIN TB002 B
ON (A.COD = B.COD) --これだけだとINDEXを使わない
試したこと
FROM TB001 A
LEFT JOIN TB002 B
ON (A.COD = B.COD)
AND (A.COD = B.COD) --2回書くとINDEXを使うようです
補足情報(FW/ツールのバージョンなど)
Oracle Database 12c Standard Edition Release 12.1.0.2.0 - 64bit Production
Oracle Client 11.2.0.1.0 Production
使用ツール
OBJECT BROWSER 13
A5:SQL Mk-2 VER.2.14.0