オプティマイザの動作を変える optimizer_features_enable

Oracleバージョンによりレスポンス悪化したので、忘れないようにメモ

 

※追記:optimizer_features_enableで下位のバージョンを指定しても実行計画が完全には下位バージョンとは一致せず、逆にレスポンス低下が発生する場合があることを確認。

使用は慎重にしたほうが良い。

※環境:Oracle11.2.0.4 指定パラメータは10.2.0.5

 

OPTIMIZER_FEATURES_ENABLE は、データベースのアップグレード後もオプティマイザの以前の動作を保持できることを目的としたパラメータ。


バージョン「10.0.2.5」を指定すると、そのバージョン以降に追加された機能は全て無効となり、 「10.0.2.5」までにリリースされた機能のみを利用して実行計画をたてることができるようになる。

 

optimizer_features_enable自体は、SPFILEとかに記載することもでき、AlterSessionでも変更可能。

 

ヒント句の場合の書き方は、以下の通り。

/*+ optimizer_features_enable('10.2.0.5') */

 

最上位のSelect句にだけ追加すれば、同一のSQL内すべてに適用。