に参加し、私持っている次のSQLクエリ:Oracleは、最適化
select dres.colA,
dres.colP,
dres.ID,
dre.ID,
dre.colED,
dre.VID,
vpp.VID,
vpp.colDESC
from table1 dres
left join table2 dre on dres.ID = dre.ID
left join table3 vpp on vpp.VID = dre.VID
where dre.START_TIME >= date '2017-01-01';
クエリがより良い仕事ができる(またはなっているはずです)どのように任意の提案を持っていますか?以下のような 何か:
...where dres.ID in (select * from table2
where VID in (select * from table3))....
結合最適化のための適切なインデックスを持っていることを確認してください。副選択に基づくin節の使用は、通常は – scaisEdge
を結合するよりもパフォーマンスが低く、数百万の行?私はそうは思わない...ネストされたループのみを引き起こす – Thomas
行数が必要であり、プランを説明する – Thomas