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_INTERVAL | RETENTION |
|---|---|
| +00 01:00:00 | +08 00:00:00 |
→ 1時間ごとにスナップショットを取得し、8日間保存しているという意味になります。
◆ STATISTICS_LEVEL の設定がAWRの鍵!
AWRが性能情報を収集するためには、初期化パラメータ STATISTICS_LEVEL が適切に設定されている必要があります。
| 値 | 説明 |
|---|---|
| BASIC | AWR機能は無効になります |
| TYPICAL | AWRが有効になります(デフォルト) |
| 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
実行の流れ:
- 出力形式(HTML/TEXT)の選択
- インスタンス番号の選択(通常は「1」)
- スナップショットIDの範囲を指定(開始・終了)
- 出力ファイル名を指定
◆ スナップショット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活用ステップ
STATISTICS_LEVELがTYPICAL以上であることを確認- スナップショット取得間隔・保存期間を確認
- 正常時のレポートを月に1度は保存
- 問題発生時にはすぐにAWRレポートを取得し、比較分析




コメント