• 締切済み

SQL文の実行速度について

こんにちは。SQLを勉強しています。 質問をさせてください。 Oracleテーブル(test_table:レコード数はかなりあると考えて構いません) にnumber(int),value(varchar), code(varchar)の3つのフィールドが存在 するとします。 今、codeを指定してvalueを取得したいと考えています。 (1)---------------------------- select value from test_table where code='001'; select value from test_table where code='002'; select value from test_table where code='003'; (2)---------------------------- select code, value from test_table where code='001' or code='002' or code='003' (1)と(2)ではどちらが実行速度が速いのでしょうか? 実際に実行すればわかることですが、そういった環境が ないので、確認できません。宜しくお願い致します。

みんなの回答

  • cse_ri2
  • ベストアンサー率25% (830/3286)
回答No.2

Oracle以外のRDBでもたいていそうなのですが、Where句 でor演算子を使うと、レスポンスが遅くなる傾向があります。 inを使用するのがベストでしょう。

  • Mizyu
  • ベストアンサー率41% (245/593)
回答No.1

多分ですが、(2)のほうが速いのではないでしょうか? プログラムのアクセス速度の調整で一番最初に行うのは「SQL発行回数の削減」ですから。

jyopper
質問者

お礼

早速の返信ありがとうございます。 >一番最初に行うのは「SQL発行回数の削減」ですから。 たしかにいわれてみればそうかもしれませんね。 あと気になるのですが, where文以降なんですが、 where code IN('001', '002', '003')  ※記述方法が違っていたらすみません。 の方が早かったりしそうですか?

関連するQ&A