STATSPACKレポートは長く、どこに何が書いてあるかを把握しないままCtrl+Fに頼って読んでいる人も多いはずです。私自身もそうでした。全体の構造を先にマップとして押さえておくと、以降のセクション別解説がぐっと追いやすくなります。
STATSPACKレポートを構成する主要セクションそれぞれの「ボリューム」「主な観点」「推奨閲覧フェーズ(STEP)」を一覧化したマップです。レポートを読み始める前に全体像を掴むために活用してください。
1. レポートヘッダ
図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の前身であり、基本構造は共通しているが、いくつかの点で異なる。
| 比較項目 | STATSPACK | AWR |
|---|---|---|
| ライセンス | 無償(標準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分析が可能な状態であるかを事前に把握する |