AWR(Automatic Workload Repository)とは?Oracle性能分析の基礎から実践まで解説!

AWR/statspack

Oracle Databaseを扱ううえで、パフォーマンス問題に直面したことはありませんか?

そんな時に頼りになるのが AWR(Automatic Workload Repository) です。
AWRは、定期的にシステムの性能情報を自動で収集し、トラブル時の原因分析やチューニングに活用できる公式ツールです。

本記事では、AWRの基礎から、構成要素、取得方法、活用法までを一気通貫で解説します。

💰 【PR】Oracleエンジニアの市場価値、調べてみませんか?

Oracleのスキルは需要が高く、特定の資格や経験を持っていると年収が大幅にアップするケースがあります。まずはIT専門のエージェントで非公開求人をチェックしてみませんか?


◆ AWRとは?

AWR(Automatic Workload Repository)は、Oracle Databaseが自動で定期的に性能情報を収集・保存する仕組みです。

以下のような情報が保存されます:

  • インスタンスの負荷状況(CPU使用率、待機イベントなど)
  • 実行されたSQL文の統計
  • セグメント(表・索引)のI/O状況
  • 初期化パラメータの変化 など

◆ AWRの全体イメージ図

[Oracle Database]

▼(定期的に)
┌────────────────┐
│ AWRスナップショット │ ← 自動収集(性能情報)
└────────────────┘

▼(開始・終了IDで比較)
┌────────────────┐
│ AWRレポート出力 │ ← HTMLまたはTEXT形式
└────────────────┘


◎ ボトルネックの特定・チューニングに活用

◆ 保存場所・収集間隔・保存期間について

● 保存場所

AWRで収集されたデータは、SYSAUX表領域に保存されます。

● 収集間隔と保存期間

デフォルトでは以下の設定となっています:

  • 収集間隔:1時間ごと
  • 保存期間:8日間(192時間)

これらの設定は以下のSQLで確認できます:

SELECT SNAP_INTERVAL, RETENTION FROM DBA_HIST_WR_CONTROL;

結果例:

SNAP_INTERVALRETENTION
+00 01:00:00+08 00:00:00

1時間ごとにスナップショットを取得し、8日間保存しているという意味になります。


◆ STATISTICS_LEVEL の設定がAWRの鍵!

AWRが性能情報を収集するためには、初期化パラメータ STATISTICS_LEVEL が適切に設定されている必要があります。

説明
BASICAWR機能は無効になります
TYPICALAWRが有効になります(デフォルト)
ALLより詳細な統計も含めて収集されます

確認コマンド:

SHOW PARAMETER STATISTICS_LEVEL;

変更コマンド(必要に応じて):

ALTER SYSTEM SET STATISTICS_LEVEL = TYPICAL SCOPE=BOTH;

💰 【PR】Oracleエンジニアの市場価値、調べてみませんか?

Oracleのスキルは需要が高く、特定の資格や経験を持っていると年収が大幅にアップするケースがあります。まずはIT専門のエージェントで非公開求人をチェックしてみませんか?


◆ AWRレポートの取得方法(基本)

Oracleには専用のスクリプトが用意されています。SQL*Plus等で次のように実行します。

@?/rdbms/admin/awrrpt.sql

実行の流れ:

  1. 出力形式(HTML/TEXT)の選択
  2. インスタンス番号の選択(通常は「1」)
  3. スナップショットIDの範囲を指定(開始・終了)
  4. 出力ファイル名を指定

◆ スナップショットIDの確認

対象のスナップショットIDは次のSQLで一覧確認できます:

SELECT SNAP_ID, BEGIN_INTERVAL_TIME, END_INTERVAL_TIME
FROM DBA_HIST_SNAPSHOT
ORDER BY SNAP_ID;
SQL> SELECT SNAP_ID, BEGIN_INTERVAL_TIME, END_INTERVAL_TIME
2 FROM DBA_HIST_SNAPSHOT
3 ORDER BY SNAP_ID;

SNAP_ID BEGIN_INTERVAL_TIME END_INTERVAL_TIME
---------- ---------------------------------------- ----------------------------------------
1 25-04-04 14:12:46.000 25-04-04 14:23:47.061
2 25-04-04 14:23:47.061 25-04-04 15:00:07.267
3 25-04-04 15:00:07.267 25-04-04 16:00:35.029
4 25-04-04 16:00:35.029 25-04-04 17:00:49.228
5 25-04-04 17:00:49.228 25-04-04 18:00:03.047
6 25-04-04 18:00:03.047 25-04-04 19:00:17.300

6行が選択されました。

◆ AWRレポートの主なセクションと注目ポイント

セクション確認すべき観点
Load Profileトランザクション数、論理読み取り数、Redo量など
Instance Efficiencyパース率、バッファヒット率などの効率指標
Top 5 Timed Eventsシステム全体で時間を多く消費している処理
SQL Statistics実行回数やI/Oが多いSQL文
Segment Statistics読み書きが多いテーブル・インデックス

◆ 正常時と異常時のレポートを比較せよ!

AWRを使った最も効果的な分析方法は、正常時と問題発生時のレポートを比較することです。

状況見るべき変化
負荷急増Load ProfileのRedo量・トランザクション数
レスポンス遅延Top Wait Eventsの変化(例:log file syncの増加)
I/O悪化Segment Statisticsで読み書きの急増

✅ ポイント

  • 単一レポートでは「重い」はわかっても「なぜ重い」がわかりません
  • 比較によって初めてボトルネックの変化が見えてきます

◆ AWR使用時のライセンス注意

AWRの使用には、次のような制限があります:

項目内容
利用可能エディションEnterprise Editionのみ
必要ライセンスOracle Diagnostic Pack
ライセンスが無い場合Statspackの使用を推奨(無償ツール)

◆ まとめ:AWRでシステム性能を「見える化」しよう

AWRを使いこなせば、Oracleの動作やボトルネックを数値として可視化できます。
日常的に取得しておくことで、トラブル発生時の迅速な原因分析が可能になります。

初心者向けAWR活用ステップ

  1. STATISTICS_LEVELTYPICAL 以上であることを確認
  2. スナップショット取得間隔・保存期間を確認
  3. 正常時のレポートを月に1度は保存
  4. 問題発生時にはすぐにAWRレポートを取得し、比較分析


[参考]
6 データベース統計の収集 – Database

💰 【PR】Oracleエンジニアの市場価値、調べてみませんか?

Oracleのスキルは需要が高く、特定の資格や経験を持っていると年収が大幅にアップするケースがあります。まずはIT専門のエージェントで非公開求人をチェックしてみませんか?

コメント

タイトルとURLをコピーしました