STATSPACKレポートの使用方法

基本的に通常時のデータと異常事態が発生しているときのデータを見比べて問題点を発見する。

今回は以下の項目について:
1. Load Profile
2. Top 5 Timed Events
3. Instance Efficiency Percentages

1. Load Profile
レポート対象期間中のPer SecondとPer Transactionでの統計情報が出力される。
システムの傾向を見ることができる。内容は以下の通り:

  1. DB time(s) - SQLの実行にかかった時間。増えている場合は処理するデータ量が増えているのか速度が落ちているのかを調べる必要がある。
  2. DB CPU(s) - SQLの実行にかかったCPU時間
  3. Redo size - 生成されたREDOログ量(byte)
  4. Logical reads - アクセスしたブロック数
  5. Block changes - 変更されたブロック数
  6. Physical reads - ディスクから読み込んだブロック数
  7. Physical writes - ディスクに書き込んだブロック数
  8. User calls - ログイン、解析、フェッチ、実行などユーザ・コール数
  9. Parses - SQLの解析回数
  10. Hard parses - SQLのハードパース回数。Parsesに対して割合が高い場合はリテラルではなくバインド変数を検討する。
  11. W/A MB processed - SQL作業領域の使用量
  12. Logons - ログオン数
  13. Executes - SQL実行回数(再帰SQL含む)
  14. Rollbacks - ロールバック回数
  15. Transactions - トランザクション

2. Top 5 Timed Events
Wait Timeの長い待機イベントが表示される。待機イベントは以下の待機クラスに分類される:

  1. User I/O
  2. System I/O 
  3. Commit
  4. Concurrency
  5. Application
  6. Idle

3. Instance Efficiency Percentages
その名の通り、インスタンス効率の指標。基本的に100%に近いほうがいい。
ベースラインと比べて低かったらチューニングをする。内容は以下の通り:

  1. Buffer Hit% - 必要なデータがデータベース・バッファ・キャッシュ上にあった割合。バッファ・キャッシュが小さい場合は大きくする。索引を使わないSQLがフルスキャンを行いバッファ・キャッシュからデータがもれた可能性もある。その場合は索引を追加作成する。
  2. Library Hit % - 必要なSQLPL/SQLがライブラリ・キャッシュにあった割合。バインド変数を使ったSQL文に書き換えることが有効。
  3. Soft Parse % - 全ての解析のうち再利用可能なものの割合。
  4. In-Memory Sort% - ソートがメモリ内で行われた割合。
  5. Latch Hit% - 全てのラッチのヒット率。
  6. Parse CPU to Parse Elapsed % - 解析CPU時間/解析のトータル時間。
  7. Execute to Parse% - SQL実行に対し解析が行われなかった割合。
  8. %non-parse CPU - 解析以外で使用されたCPU時間の割合。
  9. Buffer Nowait% - バッファに要求を出したときに、即座に使用可能だった割合。
  10. Redo Nowait% - REDOログに要求を出したときに、即座に使用可能だった割合。