AWR自動ワークロード・リポジトリ(11g)

1. 自動ワークロード・リポジトリ(AWR)の概要

1.1 AWRにより収集され処理される統計
  • データベース・セグメントのアクセス統計と使用統計を決定するオブジェクト統計。
  • アクティビティの時間使用に基づく時間モデル統計。V$SYS_TIME_MODELおよびV$SESS_TIME_MODELビューにされる。
  • V$SYSSTATおよびV$SESSTATビューで収集されるシステム統計とセッション統計の一部。
  • システム上で最大負荷を生成しているSQL文。経過時間やCPUタイムなどの基準に基づく。
  • 最新のセッション・アクティビティの履歴を表すアクティブ・セッション履歴(ASH)統計。
1.2 スナップショット(Snapshot)
  • スナップショットは、ADDMによりパフォーマンスの比較に使用される、特定の期間の履歴データのセットである。
  • デフォルトでは、1時間ごとにパフォーマンス・データのスナップショットが自動的に生成され、その統計はワークロード・リポジトリに8日間保される。
1.3 ベースライン(Baseline)
  • ベースラインには、パフォーマンス上の問題が発生したときに、類似する他のワークロード期間と比較するために保持されている特定の期間のパフォーマンス・データが含まれる。
  • ベースラインに含まれるスナップショットは、自動AWR消去プロセスの対象からは除外され、無期限に保存される。
1.4 適応しきい値(Adaptive Thresholds) 11g新機能
  • 適応しきい値を使用すると、管理オーバーヘッドを最小限に抑えながら、パフォーマンスの問題を監視および検出できる。
  • 適応しきい値は、変動ウィンドウ・ベースラインで取得されるメトリック値から導出された統計を使用して、システム・メトリックの警告しきい値とクリティカル・アラートしきい値を自動的に設定できる。
1.5 領域使用量(Space Consumption)

AWRの領域使用量は下記の要素に決まられる。

  • 特定の時点におけるシステム内のアクティブ・セッション数
  • スナップショット間隔
  • 履歴データの保存期間

2. 自動ワークロード・リポジトリ(AWR)の管理

2.1 スナップショットの管理

必要に応じてDBMS_WORKLOAD_REPOSITORYプロシージャを使用してスナップショットを手動で作成、削除および変更できる。
スナップショットの作成

SQL> exec dbms_workload_repository.create_snapshot();

PL/SQL procedure successfully completed.

SQL>

スナップショットの削除
SQL> exec dbms_workload_repository.drop_snapshot_range(low_snap_id => 15,high_snap_id => 16);

PL/SQL procedure successfully completed.

SQL>

スナップショット設定の変更:保存期間10日間、間隔30分、上位SQL数は100
SQL> exec dbms_workload_repository.modify_snapshot_settings(retention => 14400,interval => 30,topnsql => 100,dbid => 113838107);

PL/SQL procedure successfully completed.

SQL>

DBA_HIST_SNAPSHOTでスナップショットを確認できる
SQL> set pages 9999
SQL> col begin_interval_time format a25
SQL> col end_interval_time format a25
SQL> select snap_id,dbid,begin_interval_time,end_interval_time,snap_level from dba_hist_snapshot order by snap_id;

   SNAP_ID       DBID BEGIN_INTERVAL_TIME       END_INTERVAL_TIME         SNAP_LEVEL
---------- ---------- ------------------------- ------------------------- ----------
        17  113838107 13-NOV-09 11.00.08.187 PM 14-NOV-09 12.00.28.444 AM          1
        18  113838107 16-NOV-09 12.09.52.000 AM 16-NOV-09 12.20.22.860 AM          1
        19  113838107 16-NOV-09 12.50.14.000 AM 16-NOV-09 01.00.43.398 AM          1
        20  113838107 16-NOV-09 08.06.56.000 PM 16-NOV-09 08.17.18.836 PM          1
        21  113838107 16-NOV-09 08.17.18.836 PM 16-NOV-09 09.00.56.229 PM          1
        22  113838107 16-NOV-09 09.00.56.229 PM 16-NOV-09 10.00.22.912 PM          1
        23  113838107 16-NOV-09 10.00.22.912 PM 16-NOV-09 11.00.41.072 PM          1
        24  113838107 16-NOV-09 11.00.41.072 PM 17-NOV-09 12.00.44.218 AM          1
        25  113838107 17-NOV-09 12.00.44.218 AM 17-NOV-09 01.00.40.398 AM          1
        26  113838107 17-NOV-09 01.00.40.398 AM 17-NOV-09 02.00.11.955 AM          1
        27  113838107 17-NOV-09 02.00.11.955 AM 17-NOV-09 03.01.42.056 AM          1
        28  113838107 17-NOV-09 09.24.53.000 PM 17-NOV-09 09.36.02.448 PM          1
        29  113838107 17-NOV-09 11.13.19.000 PM 17-NOV-09 11.25.00.286 PM          1
        30  113838107 17-NOV-09 11.25.00.286 PM 17-NOV-09 11.42.43.194 PM          1
        31  113838107 17-NOV-09 11.42.43.194 PM 17-NOV-09 11.47.14.344 PM          1
        32  113838107 17-NOV-09 11.47.14.344 PM 17-NOV-09 11.50.19.678 PM          1
        33  113838107 18-NOV-09 09.25.59.000 PM 18-NOV-09 09.37.14.339 PM          1
        34  113838107 18-NOV-09 09.37.14.339 PM 18-NOV-09 11.00.20.804 PM          1
        35  113838107 18-NOV-09 11.00.20.804 PM 19-NOV-09 12.01.49.906 AM          1
        36  113838107 19-NOV-09 09.12.51.000 PM 19-NOV-09 09.24.10.269 PM          1
        37  113838107 19-NOV-09 09.24.10.269 PM 19-NOV-09 10.00.32.701 PM          1
        38  113838107 19-NOV-09 10.00.32.701 PM 19-NOV-09 10.14.33.325 PM          1
        39  113838107 19-NOV-09 10.14.33.325 PM 19-NOV-09 10.30.45.987 PM          1

23 rows selected.

SQL>
2.2 ベースラインの管理

ベースラインの作成 expirationの設定によって30日後、自動的に期限切れとなり、削除される。DBA_HIST_BASELINEビューでベースラインを表示できる。

SQL> exec dbms_workload_repository.create_baseline (start_snap_id => 33,end_snap_id => 35,baseline_name => 'My baseline',
    dbid => 113838107,expiration => 30);

PL/SQL procedure successfully completed.

SQL> select dbid,baseline_id,baseline_name,baseline_type,start_snap_id,end_snap_id from dba_hist_baseline;

      DBID BASELINE_ID BASELINE_NA BASELINE_TYPE START_SNAP_ID END_SNAP_ID
---------- ----------- ----------- ------------- ------------- -----------
 113838107           1 My baseline STATIC                   33          35
 113838107           0 SYSTEM_MOVI MOVING_WINDOW            17          40
                       NG_WINDOW

ベースライン・メトリックの表示
SQL> col baseline_name format a11
SQL> col metric_name format a40
SQL> col metric_unit format a40
SQL> select baseline_name,metric_name,metric_unit,average from 
     table(dbms_workload_repository.select_baseline_metric('My baseline')) where rownum < 10; 

BASELINE_NA METRIC_NAME                              METRIC_UNIT                                 AVERAGE
----------- ---------------------------------------- ---------------------------------------- ----------
My baseline CPU Usage Per Sec                        CentiSeconds Per Second                  29.4079304
My baseline CR Undo Records Applied Per Txn          Records Per Txn                          .053596491
My baseline User Rollback UndoRec Applied Per Sec    Records Per Second                       .001051172
My baseline Branch Node Splits Per Sec               Splits Per Second                        .000174856
My baseline Branch Node Splits Per Txn               Splits Per Txn                           .000051348
My baseline Physical Read Total Bytes Per Sec        Bytes Per Second                         141484.864
My baseline Global Cache Blocks Corrupted            Blocks                                            0
My baseline Database CPU Time Ratio                  % Cpu/DB_Time                            94.4183029
My baseline Row Cache Miss Ratio                     % Misses/Gets                            1.43754746

9 rows selected.

SQL>

ベースラインの削除 cascade=falseであれば、ベースラインが削除されるが、関連するスナップショットが削除されない。
SQL> exec dbms_workload_repository.drop_baseline (baseline_name => 'My baseline',cascade => false,dbid => 113838107);

PL/SQL procedure successfully completed.

SQL> select dbid,baseline_id,baseline_name,baseline_type,start_snap_id,end_snap_id from dba_hist_baseline;

      DBID BASELINE_ID BASELINE_NA BASELINE_TYPE START_SNAP_ID END_SNAP_ID
---------- ----------- ----------- ------------- ------------- -----------
 113838107           0 SYSTEM_MOVI MOVING_WINDOW            17          40
                       NG_WINDOW

SQL>
2.3 変動ウィンドウ・ベースライン 11g新機能
  • 変動ウィンドウ・ベースラインは、AWR保存期間内に存在するすべてのAWRデータに対応する。
  • AWRの全保存期間におけるAWRデータは、メトリックしきい値の計算に使用できるため、このベースラインは適応しきい値を使用する際に役立つ。
  • 変動ウィンドウ・ベースラインは通常にSYSTEM_MOVING_WINDOWと呼ばれる。

変動ウィンドウ・ベースラインの確認はDBA_HIST_BASELINE或いはWRM$_BASELINEで行える。

OMR(SYS)> col baseline_name format a30
OMR(SYS)> select dbid,baseline_id,baseline_name,baseline_type from wrm$_baseline;

      DBID BASELINE_ID BASELINE_NAME                  BASELINE_TYPE
---------- ----------- ------------------------------ -------------
1349706745           0 SYSTEM_MOVING_WINDOW           MOVING_WINDOW

OMR(SYS)> select dbid,baseline_id,baseline_name,baseline_type from dba_hist_baseline;

      DBID BASELINE_ID BASELINE_NAME                  BASELINE_TYPE
---------- ----------- ------------------------------ -------------
1349706745           0 SYSTEM_MOVING_WINDOW           MOVING_WINDOW

OMR(SYS)>

デフォルトの変動ウィンドウ・ベースラインのウィンドウ・サイズの変更
※ window_sizeはAWRの保存期間に超えないように設定しなければORA-13541が出る。
SQL> exec dbms_workload_repository.modify_baseline_window_size (window_size => 10,dbid => 1349706745);

PL/SQL procedure successfully completed.

SQL>
2.4 ベースライン・テンプレート 11g新機能

ベースライン・テンプレートを使用すると、将来の連続的な期間におけるベースラインを作成出来る。

  • 単一ベースライン・テンプレート(Single Baseline Template)は、将来における単一の連続的な期間に対応するベースラインを作成する際に使用する。
  • 繰返しベースライン・テンプレート(Repeating Baseline Template)は、時間スケジュールの繰返しに基づいてベースラインを作成および削除する際に使用する。

ベースラインテンプレートの作成と削除は下記のプロシージャを利用する。

DBMS_WORKLOAD_REPOSITORY.CREATE_BASELINE_TEMPLATE
DBMS_WORKLOAD_REPOSITORY.DROP_BASELINE_TEMPLATE

3. 自動ワークロード・リポジトリ・レポートの生成

3.1 スナップショット範囲のAWRレポートの生成
OMR(SYS)> @?/rdbms/admin/awrrpt.sql
OMR(SYS)> @?/rdbms/admin/awrrpti.sql    ##指定したデータベース・インスタンスでのスナップショット範囲のAWRレポートの生成
3.2 SQL文のAWRレポートの生成
OMR(SYS)> @?/rdbms/admin/awrsqrpt.sql
OMR(SYS)> @?/rdbms/admin/awrsqrpi.sql    ##指定したデータベース・インスタンスでのSQL文のAWRレポートの生成
3.3 AWR期間比較レポートの生成
OMR(SYS)> @?/rdbms/admin/awrddrpt.sql    ##選択された2つの期間の詳細なパフォーマンス属性および構成設定を比較する
OMR(SYS)> @?/rdbms/admin/awrddrpi.sql    ##指定したデータベース・インスタンスでのAWR期間比較レポートの生成

4. アクティブ・セッション履歴(ASH)レポート

4.1 ASHレポートの生成
OMR(SYS)> @?/rdbms/admin/ashrpt.sql    ##通常のASHレポートの作成
OMR(SYS)> @?/rdbms/admin/ashrpti.sql    ##指定したデータベース・インスタンスでのASHレポートの生成
4.2 ASHレポートのセクション
  • 上位イベント(Top Events)
    • 上位ユーザー・イベント(Top User Events)
    • 上位バックグラウンド・イベント(Top Background Events)
    • 上位イベントP1/P2/P3の値(Top Event P1/P2/P3 Values)
  • ロード・プロファイル(Load Profile)
    • 上位サービス/モジュール(Top Service/Modules)
    • 上位クライアントID(Top Client IDs)
    • 上位SQLコマンド・タイプ(Top SQL Command Types)
    • 上位実行フェーズ(Top Phases of Execution)
  • 上位SQL(Top SQL)
    • 上位SQLと上位イベント(Top SQL with Top Events)
    • 上位SQLと上位行ソース(Top SQL with Top Row Sources)
    • リテラルを使用する上位SQL(Top SQL Using Literals)
    • 上位解析モジュール/アクション(Top Parsing Module/Action)
    • SQLテキストの完全なリスト(Complete List of SQL Text)
  • 上位PL/SQL(Top PL/SQL)
  • 上位Java(Top Java)
  • 上位セッション(Top Sessions)
    • 上位セッション(Top Sessions)
    • 上位のブロック・セッション(Top Blocking Sessions)
    • PQを実行している上位セッション(Top Sessions Running PQs)
  • 上位オブジェクト/ファイル/ラッチ(Top Objects/Files/Latches)
    • 上位DBオブジェクト(Top DB Objects)
    • 上位DBファイル(Top DB Files)
    • 上位ラッチ(Top Latches)
  • アクティビティの経過(Activity Over Time)
Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License