プロが教える本番環境に影響を与えずに索引を検証する方法

対応の内容

ORACLEの索引には通常は利用されない索引を作ることが可能です。
不可視索引といいいます。
この不可視索引は個別にSQLにヒントを追記してやることでオプティマイザが検討対象にします。

事前の確認

オプティマイザが通常、不可視索引を利用しない設定になっていることを確認。
下記パラメータがfalseであればOKです。

show parameter optimizer_use_invisible_indexes;

索引の作成

索引作成時にinvisibleオプションをつけて作成します。

–create index 索引名 on 表名(列名) invisible;
create index TABLE1_INDEX_01 on TABLE1(col1) invisible;

索引の利用

use_invisible_indexesヒントを追加してSQLを実行することで不可視索引が検討対象になります。

select /*+ use_invisible_indexes */ * from TABLE1 where col1 = ‘test’;

索引の属性変更

不可視索引を通常の索引として利用したい場合は索引の属性を変更してください。

–alter index <インデックス名> visible
alter index TABLE1_INDEX_01 visible;



>>おすすめのORACLE参考書まとめ





【SQLでお困りの方にオススメ】
■SQLが遅くなる原因
・SQLが突然遅くなる原因と対応方法
・OracleSQLのレスポンスが遅い原因3つ
・JOINを使って表結合するとSQLが遅い!?
・SQLがパラレル実行されない原因

■SQLチューニングの基礎知識
・ORACLE SQLのヒントとは
・ORACLEのオプティマイザと実行計画について
・ORACLEのテーブルやインデックスの「統計情報」とは

■SQLチューニングの方法
・SLECT文が遅いときのインデックス作成によるチューニング方法
・Update文が遅いときのチューニング方法
・Delete文が遅いときのチューニング方法
・IN句をEXISTS句に置き換えするチューニング方法
・OR句の置き換えによるチューニング方法
・IN句の置き換えによるチューニング方法
・テーブルアクセスフルスキャンを無くしてチューニングする方法
・SQLでGROUP BYが遅いときのチューニング方法
・SQLのソート処理が遅い場合のチューニング方法

■表や索引の断片化対策
・プロが教えるORACLEの表や索引の断片化解消の見積り方法
・ORACLE表の断片化を解消する3つの方法

■SQLのチューニングの補足情報
・ORACLE SQLヒントの書き方
・SQLに複数のヒントの書き方
・OracleSQLに実装すべき3つのSQLヒント
・ORACLE表の統計情報取得日の確認方法
・「統計情報が古い」とはどういうことか
・ORACLE表の統計情報の取得方法

【自己学習したい方にオススメ】
・自宅で勉強用にORACLEデータベースを無償でダウンロードし構築する方法
・OracleMasterGold12cに一ヵ月で合格した勉強方法
・OracleMasterExpertパフォーマンス&チューニングに一ヵ月で合格した勉強方法
・手に職がない人はIT業界へ、オススメ資格と勉強方法
・OracleDBのチューニング勉強方法
・OraclePL/SQL勉強方法