2009年12月29日火曜日

SQLチューニングのヒント

対象RDBMSはMySQL。
2000行くらいのテーブルと10000行くらいのテーブルを結合するSQLが、実行時間が10秒くらいかかっており、これを解消しようとしてました。
で、いろいろいじってみたところ
... from hoge h left outer join fuga f on h.id = f.id and h.yyyymm = 200912
とやっていたのを、
... from hoge h left outer join fuga f on h.id = f.id and h.yyyymm = '200912'
という具合にシングルクォートで囲ってみたところ、実行時間が0.3秒と、劇的に速くなりました。
カラムyyyymmはvarchar型です。他にもいろいろいじってましたが、どうもこのシングルクォートが遅さの決め手だったと思われます。
チューニングは地道な作業ですが、これまでの経験を振り返ってみるととにかく気になることは試してみると、活路が開けるような気がします。

0 件のコメント:

コメントを投稿