グリーンペペパフォーマンスチューニングの一環として索引を追加する際に、その効果について事前に評価する必要がある場合があります。そんな時に便利な機能が11gより実装されました。11gリリース1(11.1)」に詳細が記載されていますので抜粋します。リリース11gからは、不可視索引を作成できます。不可視索引とは、セッションまたはシステム・レベルでOPTIMIZER_USE_INVISIBLE_INDEXES初期化パラメータを明示的にTRUEに設定しないかぎり、オプティマイザで無視される索引です。索引を使用禁止にしたり削除するかわりに、索引を不可視にできます。不可視索引を使用すると、次の操作を実行できます。索引を削除する前に、削除した状態をテストできます。▽optimizer_use_invisible_indexesパラメタで不可視索引の使用可否を設定します。デフォルト値はFALSE(不可視索引を使用しない)です。FALSE▽索引作成時にinvisibleパラメタを付加すると不可視索引を作成します。invisible;▽索引作成時にvisible|invisibleパラメタを設定できます。何も指定しないとvisibleになります。VISIBLE▽索引をalter文で不可視索引に変更することができます。invisible;▽optimizer_use_invisible_indexes=falseになっているので索引は使用されません。reads▽不可視索引を使用可能にしてみます。reads実行計画を比較すると不可視索引が使用され、経過時間も0.07秒から0.01秒に改善されています。gets(DBバッファキャッシュから取得したブロック数)も2782ブロックから3ブロックに改善されました。■まとめ特定セッションに限定して不可視索引を使用すれば、新規索引を本番適用する前に効果を測定できます。10gまでは、新規索引を付与すると他のSQL文の実行計画が変わってしまうおそれがありますが、不可視索引を使用すれば特定トランザクションのみ索引を使用するように指定できます。チューニングに威力を発揮する新機能のひとつとして挙げられるのではないでしょうか。reserved.トップページ企業概要プライバシーポリシ。