新しいチューニング方法とは?
性能試験をしてみたら、性能が劣化したSQLがあった!
そんな時、皆さんはどのようにチューニングを行なっていますか?
アップグレード前は、NESTED LOOPで動いていたのに、アップグレード後は、HASH JOINで動いているから、ヒント句で固めてみようかな…
というように、ヒント句を埋め込むことにより、チューニングをしている人が多いと思います。
しかし、数十個の表を結合しているような複雑なSQL文では、実行計画のステップ数が数百にも及ぶため、ヒント句をつけて試行錯誤してみても、なかなかアップグレード前の実行計画に戻せない!ということもあると思います。
そのような時は、Oracle Database 11gR1 から登場した、SQL Plan Management(SPM)を使用することをお勧めします。
SPMとは、オプティマイザが作成したSQL文の実行計画を内部的なヒント句として登録し、管理することが出来る機能です。
SPMを使用することで、アップグレード前の実行計画を、新しい環境でも使用するように設定することが可能になります。