STATSPACKレポートは長く、どこに何が書いてあるかを把握しないままCtrl+Fに頼って読んでいる人も多いはずです。私自身もそうでした。全体の構造を先にマップとして押さえておくと、以降のセクション別解説がぐっと追いやすくなります。

STATSPACKレポートを構成する主要セクションそれぞれの「ボリューム」「主な観点」「推奨閲覧フェーズ(STEP)」を一覧化したマップです。レポートを読み始める前に全体像を掴むために活用してください。

1. レポートヘッダ

STATSPACK全体構造マップ

図1: STATSPACKレポートの全セクションマップ

  • ボリューム: 1〜2ページ
  • 主な観点: DB/Host/Snap情報・Load Profile・Instance Efficiency・Top 5 Timed Events・Host/Instance CPU・Memory Stats ─ 全体俯瞰の入口
  • 閲覧フェーズ: STEP 1(必須)

2. Time Model System Stats

  • ボリューム: 小
  • 主な観点: DB Time の機能別内訳(sql execute / parse / hard parse 等)─ CPU vs 待機の精密分析
  • 閲覧フェーズ: STEP 2

3. Foreground / Background Wait Events

  • ボリューム: 中
  • 主な観点: FG/BG別の待機イベント全件・Avg wait・%Total Call Time ─ 待機の種類と規模
  • 閲覧フェーズ: STEP 2

4. Wait Events (fg and bg) / Wait Event Histogram

  • ボリューム: 中
  • 主な観点: FG+BG合算一覧・時間分布バケツ(<1ms〜>1s)─ 待機のロングテール検出
  • 閲覧フェーズ: STEP 2(補助)

5. SQL Statistics

  • ボリューム: 大
  • 主な観点: CPU/Elapsed/Gets/Reads/Executions/Parse Calls/Sharable Memory/Version Count 別ランキング ─ 原因SQL特定
  • 閲覧フェーズ: STEP 3

6. Instance Activity Stats

  • ボリューム: 大
  • 主な観点: V$SYSSTAT 全カウンタ(Total / per Second / per Trans)─ 細部の挙動の裏付け
  • 閲覧フェーズ: STEP 3-4(補助)

7. OS Statistics / IO Stat by Function / Tablespace & File IO

  • ボリューム: 中〜大
  • 主な観点: OSのCPU・VM統計/Function別I/O集計/テーブルスペース・ファイル別I/O ─ I/O偏在の検出
  • 閲覧フェーズ: STEP 4

8. Memory Dynamic Components / Buffer Pool Advisory / Buffer Pool Statistics

  • ボリューム: 小〜中
  • 主な観点: メモリ動的変化・バッファプール効率とアドバイザ ─ Buffer Cache サイジング
  • 閲覧フェーズ: STEP 5

9. PGA / Undo / Wait / Latch / Segment Statistics

  • ボリューム: 中〜大
  • 主な観点: PGAアドバイザ・バッファ待機・エンキュー競合・UNDO統計・ラッチ競合・ホットセグメント ─ 競合の深掘り
  • 閲覧フェーズ: STEP 4-5(該当時)

10. Library Cache / Dictionary Cache / Shared Pool Advisory / SGA / init.ora

  • ボリューム: 中
  • 主な観点: 共有プール詳細統計・メモリサイズ配分・起動パラメータ ─ 設定確認と最適化
  • 閲覧フェーズ: STEP 5-6

AWR vs STATSPACK — 主な違い

STATSPACKはAWRの前身であり、基本構造は共通しているが、いくつかの点で異なる。

比較項目STATSPACKAWR
ライセンス 無償(標準DB機能) Diagnostics Pack(追加ライセンス)必要
データ保持場所 PERFSTAT スキーマ(ユーザDB内) SYSAUX 表領域(自動管理)
自動スナップショット なし(手動 or ジョブ設定) あり(デフォルト60分間隔)
レポート出力方法 spreport.sql を手動実行 awrrpt.sql / OEM / DBMS_WORKLOAD_REPOSITORY
セクション構成 AWRとほぼ同等(一部項目が少ない) ADDM・ASH連携・アドバイザが充実

💡 読み方の流れはほぼ同じ

STATSPACKとAWRはセクション名称や細部のカウンタ名に差はあるが、「ヘッダ → Top Events → SQL → I/O → Memory」という診断の順序は共通。このシリーズの読み方ガイドはSTATSPACKにもそのまま適用できる。

STATSPACK構造マップの読み方でよくある誤り

STATSPACKとAWRのセクション差異を意識していないと診断の出発点を誤る。

誤り何が起きるか正しい読み方
AWRと同じ操作でADDM推奨を探すSTATSPACKにはADDMがないため、推奨セクションが存在せず診断の出発点を見失うTop 5 Timed Eventsから手動で仮説立てし、症状に対応する専門PARTを参照して診断を進める
STATSPACKとAWRのカウンタ名称が同一と仮定する例えばAWRの「DB CPU」とSTATSPACKの「CPU time」は同一概念だがラベルが異なるため、読み比べ時に混乱する各PARTの「実カラム一覧」でSTATSPACK固有の表記を確認してから比較する
STATSPACKのSQL統計はAWRと同様に9種すべてあると思い込むSTATSPACKではLevel 6以上でないとSQL統計が出力されず、またAWR固有の列が一部欠けるレポートヘッダのStats Levelを確認し、Level 6以上でSQL分析が可能な状態であるかを事前に把握する