• ベストアンサー

ORACLEでのSQLのWHERE句について

はじめまして。 ORACLEに限ったことではないかもしれませんが、 例えば次のようなWHERE句、 WHERE A=B AND C<D AND E<>F この時、各比較項目の並びを変えることによってパフォーマンス に違いが出ているような気がしているんですが、 この辺りの内容が書かれている記事等、知っていらっしゃる方 いませんでしょうか? 宜しくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • MovingWalk
  • ベストアンサー率43% (2233/5098)
回答No.1

このあたりの処理は、DBサーバによって異なるようです。 Oracleなどでは、単純にSQL文の順序で実行するわけではなく、ルールに従って 最適な方法で実行するようになっています。 こちらを参考にしてください。 http://www.int21.co.jp/pcdn/oracle/article/optimizer.html

参考URL:
http://www.int21.co.jp/pcdn/oracle/article/optimizer.html
ssssssssss
質問者

お礼

回答ありがとうございます。 まだ、全てに目を通していませんが、期待していた内容です。 もし、他にもいい記事ありましたらまた紹介して下さい。 ありがとうございました。

その他の回答 (2)

  • MovingWalk
  • ベストアンサー率43% (2233/5098)
回答No.3

>絞り込む条件が後ろにあるほどパフォーマンスが向上するということです WHERE句の全ての条件に索引がない場合ということでしょうか? 私自身は、このような認識はありませんでしたし、きちんと確認したことも ありませんので何ともいえません。また機会があれば試してみたいと思います。 いろんな情報があれば、逆に教えていただければ助かります。

ssssssssss
質問者

お礼

大変、返事が遅くなりまして申し訳ありませんでした。 いろいろ試してみましたが、特に複雑な処理ではないせいか、結局SQLのチューニングでは大きな改善は得られませんでした。 やっぱり、経験によるものって大きいですね。(^^; また、今後ともよろしくお願いします。 ありがとうございました。

  • MovingWalk
  • ベストアンサー率43% (2233/5098)
回答No.2

>他にもいい記事ありましたらまた紹介して下さい こちらはいかがでしょうか? http://cgi.html.ne.jp/~nika/orcl_mst/tuning1.html こちらは、オプティマイザについても記述されていますが、全般的ですので あまりお役に立たないかも... http://hiracle.hp.infoseek.co.jp/tech/oradev.htm http://www.venus.dti.ne.jp/~yoshi-o/RDB/Oracle-Beans_dictionary.html 後は、自分で探してみて下さい。

ssssssssss
質問者

お礼

またの情報提供ありがとうございます。 どれも、今まで気にしてなかったことばかりで大変為になります。 また、確かにこれらの記事には索引を使用しない場合にはWHERE句内での条件指定順序は関係ないようですが、やはり実践してみると差が出ている感じです。 とある人のお話では、WHERE句内での条件は後ろから解析されるということです。つまり、絞り込む条件が後ろにあるほどパフォーマンスが向上するということです。MovingWalkさんはこんな話聞いたことあります??

関連するQ&A