- ベストアンサー
DBを問わないSQLのチューニングが学べる本はありますか?
以下のSQLはほぼ全てのDBで使用できると思いますが どちらが高速なのでしょうか?このような、 DBを問わずにSQL文に関する基礎的なチューニングが学べる本はありますでしょうか? (1)JOINを使わずに結合 select * from A,B,C WHERE A.a=B.a AND A.b =C.b (2)JOINを使用して結合 select * from A left join B on A.a=B.a left join C on A.b=C.b
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
>以下のSQLはほぼ全てのDBで使用できると思いますが 最近はつかえますね。 Oracleは8iまではjoin使えませんでしたが。 >どちらが高速なのでしょうか? left joinとinnner joinを比べる時点で間違ってるかと(^^;; そもそも結果が違います。 内部結合をしている(1)が普通は高速です。 で、where句に書くのとjoinを使って記述する場合の差は普通はありません。 まぁ、最近はSQLの細かいところにこだわるよりも、コストベースにしたり、強制的にインデックスを使用させたりするのが正解でしょうね。
その他の回答 (1)
- elmclose
- ベストアンサー率31% (353/1104)
本は、このあたりですね。 "SQL Performance Tuning" http://www.amazon.co.jp/exec/obidos/ASIN/0201791692/athens-22/ "SQL Tuning" http://www.amazon.co.jp/exec/obidos/ASIN/0596005733/athens-22/
お礼
やはり洋書が進んでいるんですね。インドにパフォーマンスチューニングを日本よりは安く極められる会社があると友人に言われた事もありました。 英語には自信がないですが、試しに立ち読みしてみますね。ありがとうございました
お礼
大変わかりやすい、ご回答ありがとうございます。 テーブルをただ結合するだけなのはinner joinだったんですね(^^;)知りませんでした。 細かいところはDBによって差もありそうですし、いろいろ試したり経験なのかなぁと思いました。インデックス張りや強制的に使うなどのチューニングが効果が大きそうですね。ありがとうございました。