Wait Events セクションは、待機の分布と性質を多角的に切り出すセクション群です。STATSPACK では AWR と異なり Wait Classes 別集計がないため、FG/BG を手動で区別しながらイベント名から種別を判断する必要があります。

1. Time Model System Stats— タイムモデル統計

何を表すか: DB Time の内訳を機能別に階層分解。sql execute / parse / PL/SQL execution / hard parse 等の時間と %DB time を示す。

  • 読み方: sql execute elapsed time が DB Time の大半を占めるのは正常パターン。parse time / hard parse の比率が1%未満なら問題なし。DB CPU / DB Time 比率でCPU vs 待機のバランスを把握する。
  • 閾値・注意点: 合計が DB Time を超えるのは内訳の入れ子構造のため正常。background elapsed time / cpu time は FG の DB Time とは別カウント。
  • 関連セクション: Load Profile / Foreground Wait Events
  • 使うシーン: DB Time の内訳分析。CPU vs 待機の精密分析
項目の意味と着目点
項目名意味影響箇所・着目点
DB time全フォアグラウンドセッションの累積DB時間全体の母数。他の項目は %DB time でここと比較
DB CPUDB が消費した CPU 時間DB time に対する比率が高いほど CPU 支配型
sql execute elapsed timeSQL 実行フェーズの経過時間DB time のほぼ全量を占めるのが正常パターン
parse time elapsedパース処理の経過時間DB time の 1% 超で Hard Parse 多発の疑い
hard parse elapsed timeハードパースの経過時間parse time の大半を占める場合はバインド変数未使用
PL/SQL execution elapsed timePL/SQL 実行時間大きい場合は PL/SQL プロシージャの内部処理が重い
background elapsed timeバックグラウンドプロセスの経過時間FG の DB time とは別カウント。BG I/O 問題の参考
background cpu timeバックグラウンドの CPU 時間

2. Foreground Wait Events— フォアグラウンド待機イベント

何を表すか: ユーザ(Foreground)セッションの待機イベントを Total Wait Time 降順で表示。Idle イベントは末尾に分離される。

  • 読み方: Idle を除いた非Idle イベントの1位が支配的ボトルネック。%Total Call Time ≥10% で「中」レベル以上。Avg wait(ms) で1回あたりの重さを確認する。
  • 閾値・注意点: AWRと異なり Wait Class 列がない。イベント名から User I/O / Concurrency / Commit 等を自分で判断する必要がある。代表的なイベント名と分類は下表を参照。
  • 関連セクション: Wait Event Histogram / Top SQL by Elapsed / Background Wait Events
  • 使うシーン: ボトルネック種別の特定
項目の意味と着目点
項目名意味影響箇所・着目点
Event待機イベント名Idle 以外で1位のイベントが主ボトルネック
Waits待機発生回数Avg wait との積で Total Wait Time を概算
Total Wait Time (s)累積待機時間ランキング基準。DB time に対する %Total で重さを評価
Avg wait (ms)1回あたり平均待機時間大きい場合は個別の重い待機がある(ロック・遅い I/O)
Waits /txnトランザクションあたり待機回数DML 集中度との相関確認
%Total Call TimeTotal Call Time に占める割合30% 超のイベントは最優先で調査
代表的な非Idle 待機イベントの分類
イベント名種別(Wait Class相当)典型的な原因
db file sequential readUser I/O索引アクセス・ランダムI/O。IOPS不足またはインデックス非効率
db file scattered readUser I/OFull Table Scan / Full Index Scan のマルチブロック読込
db file parallel readUser I/Oプリフェッチ・並列クエリのI/O
direct path readUser I/O並列クエリ・大表スキャン(Buffer Cacheバイパス)
log file syncCommitCOMMIT 頻度過多またはLGWRのI/O遅延
enq: TX - row lock contentionConcurrency行ロック競合(DML 同時更新)
buffer busy waitsConcurrency同一ブロックへの同時アクセス(ホットブロック)
latch: cache buffers chainsConcurrencyBuffer Cache ラッチ競合(ホットブロック)
library cache lockConcurrencyDDL と DML の競合・カーソル共有問題
cursor: pin S wait on XConcurrencyカーソルピン競合
read by other sessionUser I/O同一ブロックを複数セッションが同時に読み込み

3. Background Wait Events— バックグラウンド待機イベント

何を表すか: DBWR / LGWR / CKPT 等のバックグラウンドプロセスの待機イベント。AWRと同様の形式で表示されるが、Idle 待機が多くを占める。

  • 読み方: 非Idle で注目すべきは db file async I/O submit / log file parallel write / control file parallel write 等の I/O 系。Avg wait が高い場合はストレージのレイテンシを疑う。
  • 閾値・注意点: BG の Idle 待機(rdbms ipc message / DIAG idle wait 等)は通常無視。db file async I/O submit の Avg wait が高い場合は I/O サブシステムの応答性低下。
  • 関連セクション: IO Stat by Function / Tablespace IO Stats / Foreground Wait Events
  • 使うシーン: バックグラウンドプロセス起因の問題調査
項目の意味と着目点
項目名意味影響箇所・着目点
Event待機イベント名Idle イベントは無視。I/O 系イベントを重点確認
Waits待機発生回数LGWR: log file parallel write の Waits ≒ COMMIT 回数
Total Wait Time (s)累積待機時間
Avg wait (ms)1回あたり平均待機時間db file async I/O submit の Avg が高ければ I/O 遅延
%TotalBG 全体のWait Time に占める割合
代表的な BG 待機イベントの分類
イベント名発生プロセス典型的な原因
db file async I/O submitDBWR非同期I/O投入時の遅延。ストレージ応答性の指標
log file parallel writeLGWRREDO ログのディスク書込待機。COMMIT レイテンシに直結
control file parallel writeCKPT 等制御ファイルへの書込。チェックポイント頻度の影響
db file sequential readRECO 等バックグラウンドでの単一ブロック読込
oracle thread bootstrap各 BG プロセスプロセス起動時の一時的な待機。通常無視
rdbms ipc message各 BG プロセスIdle 待機。無視

4. Wait Events (fg and bg)— FG+BG合算待機イベント

何を表すか: Foreground と Background を合算した待機一覧。非Idle ブロックと Idle ブロックに分けて表示される。AWR には存在しない STATSPACK 固有のセクション。

  • 読み方: FG + BG の合算なので Foreground のみより Total Wait Time が増える。FG と BG の個別セクションと比較することで、どちらのプロセスが主因かを判断する。
  • 閾値・注意点: FG と BG が重複集計される。「どちらのプロセスで発生しているか」の確認は FG / BG の個別セクションで行う。
  • 関連セクション: Foreground Wait Events / Background Wait Events
  • 使うシーン: FG+BG 通算での待機ランキング確認
項目の意味と着目点
項目名意味影響箇所・着目点
Event待機イベント名ボトルネックの性質を判別
Waits待機発生回数(FG+BG合算)頻度の確認
%Tim outタイムアウトした割合100% = 常にタイムアウト(Idle 待機の特徴)
Total Wait Time (s)累積待機時間(FG+BG合算)FG 単体より大きくなる。FG・BG の按分を個別セクションで確認
Avg wait (ms)1回あたり平均待機時間個別待機の重さ
Waits /txnトランザクションあたり待機回数DML 負荷との相関
%Total Call TimeTotal Call Time に占める割合Idle 除外後の相対比較

5. Wait Event Histogram— 待機イベントヒストグラム

何を表すか: 各待機イベントの発生時間を <1ms / <2ms / <4ms / <8ms / <16ms / <32ms / ≤1s / >1s のバケツに分けて割合表示する。

  • 読み方: >1s バケツに値があるイベントはロングテール待機(1秒超えの極端に遅い待機)が存在する。件数は少なくても平均レイテンシに大きく影響するため要注意。
  • 閾値・注意点: db file sequential read の大部分が <2ms バケツに収まれば I/O は健全。<16ms 以降に分散する場合はストレージの応答性低下。
  • 関連セクション: Foreground Wait Events / File IO Stats / Top SQL by Elapsed
  • 使うシーン: 待機のロングテール検出・SLA違反の原因調査
項目の意味と着目点
項目名意味影響箇所・着目点
Event待機イベント名Foreground Wait Events と同一イベントを対応させて読む
<1ms〜<32ms 各バケツそのレンジに収まった待機の割合(%)db file sequential read はほぼ <4ms 以内が正常
≤1s バケツ32ms〜1s の範囲に収まった待機の割合(%)I/O の大半がここに入る場合はストレージ応答が遅い
>1s バケツ1秒超の待機の割合(%)値がある場合はロングテール待機あり。Lock / Full Scan 等を疑う