リーフブロックの分析の解説
インデックスは、ルート、ブランチ、リーフで構成されています。B-Tree のレベル数(ルート・ブロックからリーフ・ブロックまでの階層)が高くなるとアクセス効率が低下するということは、インデックスの断片化の確認で解説していますので一読ください。どのくらいリーフブロックがあるか分析することで、パフォーマンスチューニング分析の一助となります
リーフブロックを分析するには
まずはINDEX(インデックス)のメカニズムを確認してください
インデックスの効率が悪くなった時など、インデックスのリーフブロックを分析することができます
1.調べたいインデックスのオブジェクトIDを取得する
最初に、調べたいインデックスのオブジェクトIDを取得します。取得するSQLは以下になります
2.INDEX TREE DUMPの取得
次にINDEX TREE DUMPを取得します。取得するSQLは以下になります。SQLの実行はSYSTEM権限が必要です
3.INDEX TREE DUMPの分析
INDEX TREE DUMPはトレースファイルとして出力されます
(XEの場合のトレースファイル格納場所:C:\oraclexe\app\oracle\diag\rdbms\xe\xe\trace)
4.ブランチ、リーフのデータをダンプする(前処理)
実際のブランチ、リーフのデータをダンプする前処理になります。以下のSQLを実行します
(XEの場合:C:\oraclexe\app\oracle\diag\rdbms\xe\xe\trace)
5.ブランチ、リーフのデータをダンプする(後処理)
実際のブランチ、リーフのデータをダンプする後処理になります。以下のSQLを実行します
(XEの場合:C:\oraclexe\app\oracle\diag\rdbms\xe\xe\trace)
ツリーダンプ取得時の注意点!
ツリーダンプ取得は、それなりに負荷がかかりますし、INDEXが大きければ、吐き出すファイルサイズも大きくなります。取得する時は注意しましょう!
6.トレースファイルの確認(Branch block dump)
トレースファイルの中のブランチを確認します
7.トレースファイルの確認(Leaf block dump)
トレースファイルの中のリーフブロックを確認します