本シリーズの締めくくりとして、症状別に「最初に見るセクション」「次に見るセクション」「原因特定後の確認」を整理したシナリオ集です。困ったときの早見表として使ってください。

1. DB全体が遅い(体感重い)

  • 最初に見る: Report Summary(Load Profile / Top 10 Foreground Events / Instance Efficiency)
  • 次に見る: Foreground Wait Events(全件)/ Time Model / Top SQL by Elapsed
  • 原因特定後: Segment Statistics で対象セグメント特定 → 該当SQLレビュー

2. CPU使用率が高い

  • 最初に見る: Report Summary(Instance CPU / Host CPU)
  • 次に見る: OS Statistics - Detail(時系列)/ Time Model(DB CPU)
  • 原因特定後: Top SQL by CPU Time → CPU per Exec の大きいSQL特定

3. I/O 待ちが多い(User I/O Class が支配的)

  • 最初に見る: Top 10 Foreground Events(db file sequential read 等)
  • 次に見る: Wait Event Histogram(Avg だけでなく分布確認)/ Top SQL by Reads
  • 原因特定後: Tablespace IO Stats / File IO Stats / Segments by Physical Reads

4. 特定 SQL が遅い(SQL_ID既知)

  • 最初に見る: Complete List of SQL Text で本文確認
  • 次に見る: 各 Top SQL ランキング(Elapsed / CPU / Reads / Parse)で SQL_ID を縦串で確認
  • 原因特定後: 実行計画は AWR 外(DBMS_XPLAN.DISPLAY_AWR)で取得

5. ロック待ち(TX/TM enq)が出ている

  • 最初に見る: Foreground Wait Events(enq: TX-/TM-
  • 次に見る: Enqueue Activity(lock type 別)/ Segments by Row Lock Waits
  • 原因特定後: Top SQL の Application 列が UPDATE/DELETE で多い → 該当アプリレビュー

6. Library Cache / Soft Parse 低下

  • 最初に見る: Instance Efficiency / Shared Pool Statistics
  • 次に見る: Top SQL by Parse Calls(1 SQLでパース集中?)
  • 原因特定後: Library Cache Activity(Pin Miss / Invalidations)/ Mutex Sleep

7. ハードパース大量・プラン爆発疑い

  • 最初に見る: Top SQL by Version Count / Library Cache Activity
  • 次に見る: Top SQL by Sharable Memory / Shared Pool Advisory
  • 原因特定後: 原因 SQL の V$SQL_SHARED_CURSOR で具体的な理由特定

8. Buffer Hit % が低い

  • 最初に見る: Report Summary(Instance Efficiency / Buffer Pool Statistics)
  • 次に見る: Buffer Pool Advisory(拡張効果試算)/ Top SQL by Reads
  • 原因特定後: Segments by Physical Reads でホットセグメント特定

9. REDO 同期待ち(log file sync)が大きい

  • 最初に見る: Top 10 Foreground Events: log file sync
  • 次に見る: Background Wait Events(log file parallel write)/ Checkpoint Activity / Instance Activity(Redo size)
  • 原因特定後: ストレージ性能確認(LGWR が遅いか)/ コミット頻度の見直し

10. Temp スパイル(PGA不足)疑い

  • 最初に見る: PGA Aggr Summary(Extra W/A Read/Written)
  • 次に見る: PGA Aggr Target Histogram(Multipass 件数)/ IOStat by Filetype(Temp)
  • 原因特定後: Top SQL by Elapsed の SORT/HASH 操作 SQL を特定

11. ロングクエリ → ORA-1555 リスク

  • 最初に見る: Undo Segment Summary(Max Qry Len)
  • 次に見る: Undo Segment Stats(時系列で Max Qry Len 推移)
  • 原因特定後: 該当時刻の Active Session で SQL_ID 確認

12. 夜間バッチ後に性能劣化

  • 最初に見る: init.ora Parameters(変更検知)
  • 次に見る: Memory Dynamic Components(Resize Ops)
  • 原因特定後: ADDM Task / SGA breakdown difference

13. Exadata で SmartScan が効いていない

  • 最初に見る: Top SQL by Physical Reads (UnOptimized)
  • 次に見る: Segments by UnOptimized Reads
  • 原因特定後: 対象 SQL のヒント(NO_PARALLEL/OPT_PARAM)と述語の関数使用を確認

14. ホットブロック疑い(Buffer Busy)

  • 最初に見る: Foreground Wait Events: buffer busy waits
  • 次に見る: Buffer Wait Statistics(class 別)/ Segments by Buffer Busy Waits
  • 原因特定後: 対象セグメントの PCTFREE / INITRANS / パーティション設計レビュー

15. ラッチ競合疑い

  • 最初に見る: Foreground Wait Events: latch: ...
  • 次に見る: Latch Activity(%Miss と Wait Time)
  • 原因特定後: Latch Sleep Breakdown / Latch Miss Sources で具体ラッチ特定

シリーズまとめ

AWRレポートには情報が満載ですが、本シリーズで整理した「セクションの意味」と「シナリオ別調査フロー」を組み合わせれば、必要な情報に素早くたどり着けるようになります。

慣れてくると、Report Summary → Top 10 Foreground Events → Top SQL の流れだけで多くの問題に当たりがつけられるようになります。最初は時間がかかっても、繰り返し読むことで「型」が身についていきます。