比較読みの目的と準備

AWRの最大の強みの一つは複数スナップショットを比較できることです。 「問題発生時」のAWRだけを見ても、それが異常かどうか判断できない場合があります。 正常時との比較によって初めて異常を正確に検出できます。

比較読みが特に有効な場面:

  • 「昨日まで速かったのに今日から遅い」という突発的な性能劣化
  • 定期バッチの実行時間が徐々に長くなっている
  • リリース前後での性能変化の確認
  • 月次・年次など季節変動の確認

各セクションの読み方は PART 03 〜 PART 08 および AWRセクション定義書 を参照。

比較すべき指標

指標見る場所比較のポイント
DB Time / Elapsed Time 比率Report Summary全体的な負荷の変化
Top 5 Wait Events の顔ぶれと割合Top 5 Timed Events新しいイベントの出現・既存イベントの急増
Transactions / secLoad Profileトランザクション量の変化
Hard Parses / secLoad Profile急増はバインド変数問題のサイン
Buffer Cache Hit %Instance Efficiency急落はデータ量増加のサイン
Top SQLの顔ぶれと % DB TimeSQL Ordered by Elapsed Time新しい重いSQLの出現、既存SQLの悪化
PGA % OptimalPGA Aggregate Statistics低下はデータ量増加によるメモリ不足

変化量の見方

AWRの値はスナップショット期間中の累積値または平均値です。 単純な数値の比較ではなく、期間で割った「1秒あたり」の値を比較することが重要です。

比較時の注意点理由
期間(Elapsed Time)が異なる場合は /秒 に正規化する長い期間のAWRは累積値が大きくなるため
Load Profile の値はすでに /秒 または /トランザクションそのまま比較可能
業務ピーク時間帯を合わせて比較するオフピーク vs ピーク比較は意味がない
同一スナップショット間隔(例:1時間)のAWRで比較する間隔が異なると単純比較できない

💡 AWR Diff Report(差分レポート)の活用

OracleにはAWR Diff Reportという2つのAWRを比較する機能があります。@?/rdbms/admin/awrddrpt.sql で生成でき、正常時と問題時の差分を自動整理してくれます。

ベースライン作成のすすめ

比較読みを効果的に行うために、正常稼働時のAWRをベースラインとして保存しておくことをお勧めします。 Oracleには DBMS_WORKLOAD_REPOSITORY.CREATE_BASELINE でベースライン(スナップショット保存期間の延長)を作成する機能があります。

ベースラインとして保存すべきタイミング
リリース直後(システムが正常に動作している状態)
大規模バッチが正常完了した直後
月次・年次の業務ピークが正常に終了した直後
チューニング前後(効果測定のため)

比較チェックリスト

チェック項目正常時比較問題発生時のアクション
DB Time比率 増加+50%超は要調査Top 5 Events で増加したイベントを確認
新しいWait Eventの出現正常時に存在しないイベントそのイベントに対応したPARTへ
Buffer Cache Hit Ratio 低下5%超の低下PART 07 メモリ分析
Top SQL の顔ぶれ変化正常時に上位になかったSQLPART 05 SQL特定
Hard Parse比率 増加5%超の増加PART 03 CPU分析