質問: selectのスピード selectのスピードでどの方法が 検索スピードが速いのか教えてもらいたいのですが aのテーブル denno code bのテーブル code name aのテーブルを主にaのcodeでbのテーブルを参照したい時 (1) select a.denno,a.code, (select b.name from b where a.code=b.code) as name from a (2) select a.denno,a.code,b.name from a left join b on a.code=b.code (3) select a.denno,a.code,b.name from a , b where a.code=b.code(+)
回答: (2)と(3)は、基本的に同じに成るはずです。 問題は、(1)と比べて(2)(3)どちらが速いかですが、オプティマイザの賢さと、 データ量及び索引の有無で答えが変わります。 テーブルa及びbのcodeに索引が付けてあって、テーブルa件数がテーブルbより極端に少ない場合、 (1)の方が速いと思いますが・・ 実行計画を出せば、どちらが速いか判断出来ますので、確認されるのが一番です。