PART 04 / 10
•
2026.05.23
•
15 min read
PART 04 — ② Wait Events Statistics 詳細
待機イベントの詳細セクション。Time Model から Service統計まで10項目を解説。
Wait Events Statistics は、待機の分布と性質を多角的に切り出すセクションです。Top 10 では見えない中位イベントや、平均では見えないロングテール待機を分析できます。
1. Time Model Statistics— タイムモデル統計
何を表すか: DB Time の内訳を機能別に階層分解。sql execute / parse / PL/SQL execution / hard parse 等の時間と %DB time。
- 読み方: DB Time が何で構成されているか分解する。sql execute elapsed time が大半が普通。parse time / hard parse time の比率が高いとパース問題。
- 閾値・注意点: 階層構造があり、合計が DB Time を超える(内訳の入れ子)。同名統計でも階層位置で意味が変わる。
- 関連セクション: Soft Parse % / Top SQL by Parse Calls / Foreground Wait Events
- 使うシーン: DB Time の内訳分析
実カラムと意味・影響
| 項目名 | 意味 | 影響箇所・着目点 |
| Statistic Name | タイムモデル統計名(後表参照) | DB Time のどの内訳かを示す |
| Time (s) | その統計が占めた累積時間(秒) | 絶対値での影響規模 |
| % of DB Time | DB Timeに占める比率 | 支配的な処理の特定 |
| % of Total CPU Time | 総CPU時間に占める比率 | CPU面での支配的処理を判定 |
代表的なTime Model統計
| 統計名 | 意味 | 影響箇所 |
| DB time | 全セッションのDB処理時間(最上位) | すべての分母 |
| DB CPU | 純粋なCPU処理時間 | CPU飽和の判定 |
| sql execute elapsed time | SQL実行に要した時間 | 通常はDB Timeの大半 |
| parse time elapsed | パース全体の時間 | 高いとカーソル再利用不足 |
| hard parse elapsed time | ハードパースに要した時間 | バインド変数未使用の指標 |
| PL/SQL execution elapsed time | PL/SQLブロックの実行時間 | PL/SQL重視ワークロードの判定 |
| connection management call elapsed time | 接続管理処理 | 高いとログオン頻発(プール未使用) |
| RMAN cpu time (backup/restore) | RMAN処理のCPU時間 | バックアップ実行中の判定 |
| background elapsed time | BGプロセスのDB Time | BG負荷の規模 |
2. Operating System Statistics— OS統計(累積値)
何を表すか: Begin から End までのOS統計の累積値。NUM_CPUS / BUSY_TIME / IDLE_TIME / IOWAIT_TIME 等を ticks/秒で表示。
- 読み方:
%Busy = BUSY_TIME / (BUSY+IDLE)。期間中の平均CPU使用率を算出できる。Host CPU欄(Begin/End 瞬間値)より信頼性高い。
- 閾値・注意点: 数字の単位(cs=centisecond, ticks)に注意。NUM_CPU_CORES と NUM_CPUS の違い(cores vs threads)も意識。
- 関連セクション: Operating System Statistics - Detail / Host CPU
- 使うシーン: 期間平均CPU使用率算出
代表的なStatistic項目
| Statistic | 意味 | 影響箇所・着目点 |
| BUSY_TIME | CPUがビジー状態だった累積cs | %Busy算出の分子 |
| IDLE_TIME | CPUアイドル時間 | %Busy算出の分母 |
| USER_TIME | ユーザモードCPU時間 | 業務処理が占める割合 |
| SYS_TIME | カーネル時間 | 多いとSyscall過多 |
| IOWAIT_TIME | I/O待機中のCPU累積 | 多いとI/Oボトルネック |
| NICE_TIME | 優先度変更プロセスの時間 | 通常はほぼゼロ |
| LOAD | OS Load Average | Cores比で過負荷判定 |
| NUM_CPUS / NUM_CPU_CORES / NUM_CPU_SOCKETS | 論理/物理/ソケットの構成 | AAS判定の前提値 |
| PHYSICAL_MEMORY_BYTES | 物理メモリ量 | SGA+PGAの上限 |
| VM_IN_BYTES / VM_OUT_BYTES | 仮想メモリ in/out | スワップ発生の検知 |
3. Operating System Statistics - Detail— OS統計 詳細(スナップ毎)
何を表すか: 中間スナップ単位のOS統計詳細。load / %busy / %user / %sys / %idle / %iowait を時系列で確認可能。
- 読み方: 時間帯別の凸凹を確認。特定時間帯の負荷スパイクや I/O 集中を見つけるのに最適。
- 閾値・注意点: AWR が中間スナップ込みで生成された場合のみ詳細が出る。通常は Snapshot 設定の MAX_INTERVAL = 60 分間隔。
- 関連セクション: Foreground Wait Events / Top SQL
- 使うシーン: 時間帯別の負荷ピーク特定
実カラムと意味・影響
| 項目名 | 意味 | 影響箇所・着目点 |
| Snap Time | スナップ取得時刻 | 時系列分析のキー |
| Load | そのスナップ時点のLoad Average | 時間帯別の負荷ピーク特定 |
| %busy | CPUビジー率 | 飽和タイムスロットの特定 |
| %user | ユーザモードCPU比率 | 業務処理の偏在 |
| %sys | カーネルモード比率 | システムコール過多時間帯 |
| %idle | アイドル率 | 余裕度の時系列推移 |
| %iowait | I/O待機比率 | ストレージスパイクの時間帯 |
4. Foreground Wait Class— Foreground 待機クラス
何を表すか: FG(ユーザセッション)の Wait Class 別集計。Total Waits / Avg Wait / Wait Time / %DB time。
- 読み方: Application(TX lock 等)/ User I/O / Concurrency / Configuration の比率を見る。Other が大きければ Foreground Wait Events を直接確認。
- 閾値・注意点: DB CPU は別出される(Wait Class ではない)。Total と Foreground でクラス内訳が異なる。
- 関連セクション: Foreground Wait Events / Wait Classes(Summary)
- 使うシーン: FG側の待機分布の把握
実カラムと意味・影響
| 項目名 | 意味 | 影響箇所・着目点 |
| Wait Class | 待機クラス分類 | User I/O / Concurrency / Application 等 |
| Waits | クラス内の総待機回数 | 頻度の規模 |
| %Time-outs | タイムアウト発生率 | 0でない場合は接続/ロック切れあり |
| Total Wait Time (s) | 累積待機時間 | ランキングの基準 |
| Avg wait (ms) | 1回平均待機時間 | 個別待機の重さ |
| %DB time | DB Time比 | 支配的クラスの判定 |
5. Foreground Wait Events— Foreground 待機イベント(全件)
何を表すか: FG セッションの全待機イベントを Total Wait Time 降順で全件表示。Top 10 の延長版。
- 読み方: Top 10 では見えない中位イベントもチェック。Avg wait の桁を見て個別待機の重さを評価。%Time-outs が高ければタイムアウトしているクエリあり。
- 閾値・注意点: Idle waits(SQL*Net message from client 等)も含まれるが、これらは「待機」ではなく「セッションが待っているだけ」。
- 関連セクション: Wait Event Histogram / Service Wait Class Stats / Top SQL
- 使うシーン: 詳細な待機分析
実カラムと意味・影響
| 項目名 | 意味 | 影響箇所・着目点 |
| Event | 待機イベント名 | ボトルネックの種類判定 |
| Waits | 待機回数 | 頻度 |
| %Time-outs | タイムアウト発生率 | 0より大きいと異常検出 |
| Total Wait Time (s) | 累積待機時間 | ランキング基準 |
| Avg wait (ms) | 1回平均待機時間 | 個別重さ。ヒストグラムで分布も確認 |
| Waits /txn | 1トランザクションあたり待機回数 | 業務処理1単位での頻度 |
| % DB time | DB Time比 | 支配度 |
代表的なIdle Wait Events(無視してよい待機)
| イベント | 意味 | 備考 |
| SQL*Net message from client | クライアントからの次の指令待ち | セッションがアイドル状態 |
| jobq slave wait | JOBスレーブの空き待ち | JOBプロセスのアイドル |
| pmon timer / smon timer | PMON/SMONの周期待機 | BGプロセスの定常待機 |
| rdbms ipc message | IPCメッセージ待ち | BGの定常状態 |
6. Background Wait Events— Background 待機イベント
何を表すか: バックグラウンドプロセス(DBWR/LGWR/CKPT/SMON 等)の待機。FG とは別管理。
- 読み方:
log file parallel write が大きければ REDO 書き込み遅延、db file parallel write が大きければ DBWR 書き込み遅延。BG が遅いと FG にも波及する。
- 閾値・注意点: Foreground と数値の母集団が違う(%bg time は BG 時間内での比率)。
- 関連セクション: Foreground Wait Events / Buffer Pool Statistics / Checkpoint Activity
- 使うシーン: BG プロセス遅延調査
実カラムと注意すべきBG待機
| 項目名 | 意味 | 影響箇所・着目点 |
| Event | BG待機イベント名 | BGプロセスの種類判定 |
| Waits / %Time-outs / Total Wait Time / Avg wait | FG同様の各統計 | FGと別カウントに注意 |
| %bg time | BG時間に占める比率 | BG内ランキング |
| log file parallel write | LGWRがREDOログを書く時間 | FGのlog file syncと連動 |
| db file parallel write | DBWRがデータファイル書込み | 遅いとFreeBufferWait誘発 |
| control file parallel write | 制御ファイル書込み | CKPT遅延の判定 |
7. Wait Event Histogram— 待機イベントヒストグラム(全体)
何を表すか: 各イベントの待機時間分布(<1ms / <2ms / <4ms / ... / <32s)。「平均は2msだが実は1秒待ちが混じる」を見抜く。
- 読み方: Avg wait が良くてもヒストグラムで長時間ビン(1s〜32s)に件数があれば、スパイクが混じっている。SLA品質の評価に必須。
- 閾値・注意点: 件数の割合(%)なので、母数(Waits)が小さいイベントの分布は信頼性低い。
- 関連セクション: Wait Event Histogram Detail / Foreground Wait Events
- 使うシーン: ロングテール待機の検出
実カラムと意味・影響
| 項目名 | 意味 | 影響箇所・着目点 |
| Event | 待機イベント名 | 分析対象 |
| Total Waits | そのイベントの総待機数 | 母数。小さいと分布の信頼性低 |
| <1ms 〜 <32ms | 各ビン(短時間)に入った割合 | 正常範囲。ほとんどここに収まるのが理想 |
| <=1s | 1秒未満ビンの割合 | 許容範囲のロングテール |
| >1s | 1秒以上の待機割合 | 要警戒。スパイクの兆候 |
8. Wait Event Histogram Detail— ヒストグラム詳細(長時間ビン)
何を表すか: ロングテール側(≥64ms / ≥4s / ≥4min)の分布。「ほとんどは速いが時々超遅い」イベントを見つける。
- 読み方: ≥4 sec ビンに件数があるのは要警戒。≥1分は明らかな異常(ストレージ障害・ネットワーク断 等)。
- 閾値・注意点: 件数が少ないと「異常検出」レベル。母数を Wait Event Histogram で確認。
- 関連セクション: Foreground Wait Events / OS Statistics
- 使うシーン: 間欠的な大遅延の検出
実カラムと意味・影響
| 項目名 | 意味 | 影響箇所・着目点 |
| Event | イベント名 | 長時間待機があったイベント |
| Waits 64ms to 2s / 4s to 2m / 4min to 1hr | 各ロングテール帯の総待機数 | 長時間バケットに件数があれば異常検知 |
| <1/8s / <1/4s / <1/2s / <1s / <2s | 細分化されたサブビン | 分布の偏り把握 |
| <4s / <8s / <16s / <32s / <1m / <2m | 秒〜分単位の長時間帯 | 4秒以上ビンに件数があれば調査必須 |
| >=2m | 2分以上の異常待機 | ストレージ障害・ネットワーク断級の事象 |
9. Service Statistics— サービス統計
何を表すか: DB サービス名(SERVICE_NAME)単位の DB Time / DB CPU / Physical Reads / Logical Reads。アプリケーション識別用。
- 読み方: サービス分割している場合、どのアプリ/モジュールが負荷源かが分かる。SYS$USERS は一般デフォルトサービス、SYS$BACKGROUND はBGプロセス。
- 閾値・注意点: JDBC Thin Client から SERVICE_NAME 未指定接続だと SYS$USERS に集約される。
- 関連セクション: Foreground Wait Events / Top SQL(Module 列)
- 使うシーン: サービス/アプリ別の負荷分析
実カラムと意味・影響
| 項目名 | 意味 | 影響箇所・着目点 |
| Service Name | DBサービス名 | アプリ別に分離されているかの判定 |
| DB Time (s) | そのサービスのDB処理時間 | サービス別負荷規模 |
| DB CPU (s) | そのサービスのCPU時間 | CPU負荷の偏在 |
| Physical Reads (K) | 物理読込ブロック数(千単位) | I/O負荷の偏在 |
| Logical Reads (K) | 論理読込ブロック数(千単位) | 処理量の偏在 |
10. Service Wait Class Stats— サービス × 待機クラス統計
何を表すか: Service Name × Wait Class のクロス集計。User I/O Total Wts / Concurrency Wait Time / Application Wait Time など。
- 読み方: サービスごとの「待機の種類の偏在」が見える。あるサービスだけ Concurrency 待機が突出していれば、そのアプリのロック設計が疑わしい。
- 閾値・注意点: サービスが分かれていないとここは見にくい。
- 関連セクション: Service Statistics / Foreground Wait Events
- 使うシーン: アプリ別ボトルネック分類
実カラムと意味・影響
| 項目名 | 意味 | 影響箇所・着目点 |
| Service Name | DBサービス名 | サービス別の集計キー |
| User I/O Total Wts / Wt Time | ユーザI/O待機の回数と時間 | サービス別I/Oボトルネック |
| Concurcy Total Wts / Wt Time | 並行性待機(ラッチ等) | サービス別の内部競合 |
| Admin Total Wts / Wt Time | 管理系待機 | DDL等の管理操作 |
| Network Total Wts / Wt Time | ネットワーク待機 | サービス別のNW遅延 |