DBMS_WORKLOAD_REPOSITORYパッケージを使用して、ワークロード・リポジトリを管理し、スナップショットやベースラインの管理などの操作を実行できます。
この章では、次の項目について説明します。
この項では、DBMS_WORKLOAD_REPOSITORYパッケージの使用に関連する項目について説明します。
次の例では、データベースID 1557521192、インスタンスID 1、スナップショットID 5390と5391、およびデフォルト・オプションを指定し、DBMS_WORKLOAD_REPOSITORYパッケージを使用してAWRテキスト・レポートを生成する方法を示します。
-- make sure to set line size appropriately
-- set linesize 152
SELECT output FROM TABLE(
DBMS_WORKLOAD_REPOSITORY.AWR_REPORT_TEXT(
1557521192, 1, 5390, 5392) ) ;
この例のように、DBMS_WORKLOAD_REPOSITORYパッケージ・ファンクションを直接コールすることもできますが、パッケージ・ファンクション用に提供された、対応するSQLスクリプト(この場合はawrrpt.sql)を使用することをお薦めします。このスクリプトを使用すると、必要な情報の入力を求められます。
表119-1 DBMS_WORKLOAD_REPOSITORYパッケージのサブプログラム
| サブプログラム | 説明 |
|---|---|
|
|
ASHレポートをHTMLで表示します。 |
|
|
ASHレポートをテキストで表示します。 |
|
|
AWR Diff-DiffレポートをHTMLで表示します。 |
|
|
AWR Diff-Diffレポートをテキストで表示します。 |
|
|
AWRレポートをHTMLで表示します。 |
|
|
AWRレポートをテキストで表示します。 |
|
|
AWR SQLレポートをHTML形式で表示します。 |
|
|
AWR SQLレポートをテキスト形式で表示します。 |
|
CREATE_BASELINEファンクションおよびプロシージャ |
単一のベースラインを作成します。 |
|
CREATE_SNAPSHOTファンクションおよびプロシージャ |
マニュアル・スナップショットを即時に作成します。 |
|
|
スナップショットの範囲を削除します。 |
|
|
サービスをアクティブにします。 |
|
MODIFY_SNAPSHOT_SETTINGSプロシージャ |
スナップショット設定を変更します。 |
このテーブル・ファンクションは、ASHスポット・レポートをHTMLで表示します。
構文
DBMS_WORKLOAD_REPOSITORY.ASH_REPORT_HTML( l_dbid IN NUMBER, l_inst_num IN NUMBER, l_btime IN DATE, l_etime IN DATE, l_options IN NUMBER DEFAULT 0, l_slot_width IN NUMBER DEFAULT 0, l_sid IN NUMBER DEFAULT NULL, l_sql_id IN VARCHAR2 DEFAULT NULL, l_wait_class IN VARCHAR2 DEFAULT NULL, l_service_hash IN NUMBER DEFAULT NULL, l_module IN VARCHAR2 DEFAULT NULL, l_action IN VARCHAR2 DEFAULT NULL, l_client_id IN VARCHAR2 DEFAULT NULL) RETURN awrrpt_html_type_table PIPELINED;
パラメータ
表119-2 ASH_REPORT_HTMLのパラメータ
| パラメータ | 説明 |
|---|---|
|
|
データベース識別子。 |
|
|
インスタンス番号。 |
|
|
開始時間。 |
|
|
終了時間。 |
|
|
レポート・レベル(現在は使用されていません)。 |
|
|
レポートの「トップ・アクティビティ」セクションで使用するスロットの幅(秒)を指定します。この引数はオプションです。指定しない場合、 |
|
|
セッションID(「使用上の注意」を参照)。 |
|
|
SQL ID(「使用上の注意」を参照)。 |
|
|
待機クラス名(「使用上の注意」を参照)。 |
|
|
サービス名のハッシュ(「使用上の注意」を参照)。 |
|
|
モジュール名(「使用上の注意」を参照)。 |
|
|
アクション名(「使用上の注意」を参照)。 |
|
|
エンドツーエンドのバックトレースのクライアントID(「使用上の注意」を参照)。 |
戻り値
出力はVARCHAR2(500)の1列です。
使用上の注意
このファンクションを直接コールすることもできますが、ユーザーに必要な情報の入力を求めるashrpt.sqlスクリプトを使用することをお薦めします。
指定されていないオプションの引数は、レポート対象(SQL文、セッション、特定のサービス名/モジュール名の組合せなど)を指定するASHレポートを生成するために使用します。これらの引数は、レポートの生成に使用されるASH行を制限するために指定します。たとえば、特定のSQL文(SQL_ID 'abcdefghij123 'など)に関するASHレポートを生成するには、次のように、そのsql_id値をl_sql_id引数に渡します。
l_sql_id => 'abcdefghij123'
これらのオプションの引数はいずれの組合せでも渡すことができます。また、これらのすべてのレポート対象を満たすASHの行のみが使用されます。複数のレポート対象が指定されている場合は、条件ロジックのANDを使用してこれらの対象を連結します。たとえば、MODULE "PAYROLL"およびACTION "PROCESS"に関するASHレポートを生成するには、次の条件を使用します。
l_module => 'PAYROLL', l_action => 'PROCESS'
VARCHAR2型のすべての引数で、有効なSQLワイルドカードを使用できます。
表119-3 ASH_REPORT_HTML: 引数でのワイルドカードの使用
| 引数名 | コメント | ワイルドカードを使用できるかどうか |
|---|---|---|
|
|
セッションID( |
いいえ |
|
|
SQL ID( |
はい |
|
|
待機クラス名( |
はい |
|
|
サービス名のハッシュ( |
いいえ |
|
|
モジュール名( |
はい |
|
|
アクション名( |
はい |
|
|
エンドツーエンドのバックトレースのクライアントID( |
はい |
このテーブル・ファンクションは、ASHスポット・レポートをテキストで表示します。
構文
DBMS_WORKLOAD_REPOSITORY.ASH_REPORT_TEXT( l_dbid IN NUMBER, l_inst_num IN NUMBER, l_btime IN DATE, l_etime IN DATE, l_options IN NUMBER DEFAULT 0, l_slot_width IN NUMBER DEFAULT 0, l_sid IN NUMBER DEFAULT NULL, l_sql_id IN VARCHAR2 DEFAULT NULL, l_wait_class IN VARCHAR2 DEFAULT NULL, l_service_hash IN NUMBER DEFAULT NULL, l_module IN VARCHAR2 DEFAULT NULL, l_action IN VARCHAR2 DEFAULT NULL, l_client_id IN VARCHAR2 DEFAULT NULL) RETURN awrrpt_text_type_table PIPELINED;
パラメータ
表119-4 ASH_REPORT_TEXTのパラメータ
| パラメータ | 説明 |
|---|---|
|
|
データベース識別子。 |
|
|
インスタンス番号。 |
|
|
開始時間。 |
|
|
終了時間。 |
|
|
レポート・レベル(現在は使用されていません)。 |
|
|
レポートの「トップ・アクティビティ」セクションで使用するスロットの幅(秒)を指定します。この引数はオプションです。指定しない場合、 |
|
|
セッションID(「使用上の注意」を参照)。 |
|
|
SQL ID(「使用上の注意」を参照)。 |
|
|
待機クラス名(「使用上の注意」を参照)。 |
|
|
サービス名のハッシュ(「使用上の注意」を参照)。 |
|
|
モジュール名(「使用上の注意」を参照)。 |
|
|
アクション名(「使用上の注意」を参照)。 |
|
|
エンドツーエンドのバックトレースのクライアントID(「使用上の注意」を参照)。 |
戻り値
出力はVARCHAR2(80)の1列です。
使用上の注意
このファンクションを直接コールすることもできますが、ユーザーに必要な情報の入力を求めるashrpt.sqlスクリプトを使用することをお薦めします。
指定されていないオプションの引数は、レポート対象(SQL文、セッション、特定のサービス名/モジュール名の組合せなど)を指定するASHレポートを生成するために使用します。これらの引数は、レポートの生成に使用されるASH行を制限するために指定します。たとえば、特定のSQL文(SQL_ID 'abcdefghij123'など)に関するASHレポートを生成するには、次のように、そのsql_id値をl_sql_id引数に渡します。
l_sql_id => 'abcdefghij123'
これらのオプションの引数はいずれの組合せでも渡すことができます。また、これらのすべてのレポート対象を満たすASHの行のみが使用されます。複数のレポート対象が指定されている場合は、条件ロジックのANDを使用してこれらの対象を連結します。たとえば、MODULE "PAYROLL"およびACTION "PROCESS"に関するASHレポートを生成するには、次の条件を使用します。
l_module => 'PAYROLL', l_action => 'PROCESS'
VARCHAR2型のすべての引数で、有効なSQLワイルドカードを使用できます。
表119-5 ASH_REPORT_TEXT: 引数でのワイルドカードの使用
| 引数名 | コメント | ワイルドカードを使用できるかどうか |
|---|---|---|
|
|
セッションID( |
いいえ |
|
|
SQL ID( |
はい |
|
|
待機クラス名( |
はい |
|
|
サービス名のハッシュ( |
いいえ |
|
|
モジュール名( |
はい |
|
|
アクション名( |
はい |
|
|
エンドツーエンドのバックトレースのクライアントID( |
はい |
このテーブル・ファンクションは、AWR期間の比較レポートをHTMLで表示します。
構文
DBMS_WORKLOAD_REPOSITORY.AWR_DIFF_REPORT_HTML( dbid1 IN NUMBER, inst_num1 IN NUMBER, bid1 IN NUMBER, eid1 IN NUMBER, dbid2 IN NUMBER, inst_num2 IN NUMBER, bid2 IN NUMBER, eid2 IN NUMBER) RETURN awrdrpt_text_type_table PIPELINED;
パラメータ
表119-6 AWR_DIFF_REPORT_HTMLのパラメータ
| パラメータ | 説明 |
|---|---|
|
|
1番目のデータベース識別子。 |
|
|
1番目のインスタンス番号。 |
|
|
1番目の開始スナップショットID。 |
|
|
1番目の終了スナップショットID。 |
|
|
2番目のデータベース識別子。 |
|
|
2番目のインスタンス番号。 |
|
|
2番目の開始スナップショットID。 |
|
|
2番目の終了スナップショットID。 |
戻り値
出力はVARCHAR2(500)の1列です。
使用上の注意
このファンクションを直接コールすることもできますが、ユーザーに必要な情報の入力を求めるawrddrpt.sqlスクリプトを使用することをお薦めします。
このテーブル・ファンクションは、AWR期間の比較レポートをテキストで表示します。
構文
DBMS_WORKLOAD_REPOSITORY.AWR_DIFF_REPORT_TEXT( dbid1 IN NUMBER, inst_num1 IN NUMBER, bid1 IN NUMBER, eid1 IN NUMBER, dbid2 IN NUMBER, inst_num2 IN NUMBER, bid2 IN NUMBER, eid2 IN NUMBER) RETURN awrdrpt_text_type_table PIPELINED;
パラメータ
表119-7 AWR_DIFF_REPORT_TEXTのパラメータ
| パラメータ | 説明 |
|---|---|
|
|
1番目のデータベース識別子。 |
|
|
1番目のインスタンス番号。 |
|
|
1番目の開始スナップショットID。 |
|
|
1番目の終了スナップショットID。 |
|
|
2番目のデータベース識別子。 |
|
|
2番目のインスタンス番号。 |
|
|
2番目の開始スナップショットID。 |
|
|
2番目の終了スナップショットID。 |
戻り値
出力はVARCHAR2(500)の1列です。
使用上の注意
このファンクションを直接コールすることもできますが、ユーザーに必要な情報の入力を求めるawrddrpt.sqlスクリプトを使用することをお薦めします。
このテーブル・ファンクションは、AWRレポートをHTMLで表示します。
構文
DBMS_WORKLOAD_REPOSITORY.AWR_REPORT_HTML( l_dbid IN NUMBER, l_inst_num IN NUMBER, l_bid IN NUMBER, l_eid IN NUMBER, l_options IN NUMBER DEFAULT 0) RETURN awrrpt_text_type_table PIPELINED;
パラメータ
表119-8 AWR_REPORT_HTMLのパラメータ
| パラメータ | 説明 |
|---|---|
|
|
データベース識別子。 |
|
|
インスタンス番号。 |
|
|
開始スナップショットID。 |
|
|
終了スナップショットID。 |
|
|
レポートの出力を制御するために指定するフラグ。現在、Oracleでは次の1つの値をサポートしています。
|
戻り値
出力はVARCHAR2(150)の1列です。
使用上の注意
このファンクションを直接コールすることもできますが、ユーザーに必要な情報の入力を求めるawrrpt.sqlスクリプトを使用することをお薦めします。
このテーブル・ファンクションは、AWRレポートをテキストで表示します。
構文
DBMS_WORKLOAD_REPOSITORY.AWR_REPORT_TEXT( l_dbid IN NUMBER, l_inst_num IN NUMBER, l_bid IN NUMBER, l_eid IN NUMBER, l_options IN NUMBER DEFAULT 0) RETURN awrrpt_text_type_table PIPELINED;
パラメータ
表119-9 AWR_REPORT_TEXTのパラメータ
| パラメータ | 説明 |
|---|---|
|
|
データベース識別子。 |
|
|
インスタンス番号。 |
|
|
開始スナップショットID。 |
|
|
終了スナップショットID。 |
|
|
レポートの出力を制御するために指定するフラグ。現在、Oracleでは次の1つの値をサポートしています。
|
戻り値
出力はVARCHAR2(80)の1列です。
使用上の注意
このファンクションを直接コールすることもできますが、ユーザーに必要な情報の入力を求めるawrrpt.sqlスクリプトを使用することをお薦めします。
このテーブル・ファンクションは、AWR SQLレポートをHTML形式で表示します。
構文
DBMS_WORKLOAD_REPOSITORY.AWR_SQL_REPORT_HTML( l_dbid IN NUMBER, l_inst_num IN NUMBER, l_bid IN NUMBER, l_eid IN NUMBER, l_sqlid IN VARCHAR2, l_options IN NUMBER DEFAULT 0) RETURN awrrpt_html_type_table PIPELINED;
パラメータ
表119-10 AWR_SQL_REPORT_HTMLのパラメータ
| パラメータ | 説明 |
|---|---|
|
|
データベース識別子。 |
|
|
インスタンス番号。 |
|
|
開始スナップショットID。 |
|
|
終了スナップショットID。 |
|
|
分析する文のSQL ID。 |
|
|
レポートの出力を制御するために指定するフラグ。現在は使用されていません。 |
戻り値
出力はVARCHAR2(500)の1列です。
使用上の注意
このファンクションを直接コールすることもできますが、ユーザーに必要な情報の入力を求めるawrsqrpt.sqlスクリプトを使用することをお薦めします。
このテーブル・ファンクションは、AWR SQLレポートをテキスト形式で表示します。
構文
DBMS_WORKLOAD_REPOSITORY.AWR_SQL_REPORT_TEXT( l_dbid IN NUMBER, l_inst_num IN NUMBER, l_bid IN NUMBER, l_eid IN NUMBER, l_sqlid IN VARCHAR2, l_options IN NUMBER DEFAULT 0) RETURN awrrpt_text_type_table PIPELINED;
パラメータ
表119-11 AWR_SQL_REPORT_TEXTのパラメータ
| パラメータ | 説明 |
|---|---|
|
|
データベース識別子。 |
|
|
インスタンス番号。 |
|
|
開始スナップショットID。 |
|
|
終了スナップショットID。 |
|
|
分析する文のSQL ID。 |
|
|
レポートの出力を制御するために指定するフラグ。現在は使用されていません。 |
戻り値
出力はVARCHAR2(120)の1列です。
使用上の注意
このファンクションを直接コールすることもできますが、ユーザーに必要な情報の入力を求めるawrsqrpt.sqlスクリプトを使用することをお薦めします。
このファンクションおよびプロシージャは、ベースラインを作成します。
構文
DBMS_WORKLOAD_REPOSITORY.CREATE_BASELINE( start_snap_id IN NUMBER, end_snap_id IN NUMBER, baseline_name IN VARCHAR2, dbid IN NUMBER DEFAULT NULL); DBMS_WORKLOAD_REPOSITORY.CREATE_BASELINE( start_snap_id IN NUMBER, end_snap_id IN NUMBER, baseline_name IN VARCHAR2, dbid IN NUMBER DEFAULT NULL) RETURN NUMBER;
パラメータ
表119-12 CREATE_BASELINEのパラメータ
| パラメータ | 説明 |
|---|---|
|
|
開始スナップショット順序番号。 |
|
|
終了スナップショット順序番号。 |
|
|
ベースラインの名前。 |
|
|
データベースID(デフォルトはローカルDBID)。 |
例
次の例では、ローカル・データベースのスナップショット105から107までのベースライン('oltp_peakload_bl'という名前で)を作成します。
EXECUTE DBMS_WORKLOAD_REPOSITORY.CREATE_BASELINE (start_snap_id => 105, end_snap_id => 107, baseline_name => 'oltp_peakload_bl');
ベースライン作成操作後にDBA_HIST_BASELINEビューを問い合せると、ワークロード・リポジトリに新しく作成したベースラインが表示されます。
このファンクションおよびプロシージャは、スナップショットを作成します。ファンクションの場合、スナップショットIDが戻されます。
構文
DBMS_WORKLOAD_REPOSITORY.CREATE_SNAPSHOT( flush_level IN VARCHAR2 DEFAULT 'TYPICAL'); DBMS_WORKLOAD_REPOSITORY.CREATE_SNAPSHOT( flush_level IN VARCHAR2 DEFAULT 'TYPICAL') RETURN NUMBER;
パラメータ
例
この例では、TYPICALレベルでマニュアル・スナップショットを作成します。
EXECUTE DBMS_WORKLOAD_REPOSITORY.CREATE_SNAPSHOT();
CREATE_SNAPSHOT操作後にDBA_HIST_SNAPSHOTビューを問い合せると、ワークロード・リポジトリにもう1つスナップショットIDが追加されているのが確認できます。
このプロシージャは、ベースラインを削除します。
構文
DBMS_WORKLOAD_REPOSITORY.DROP_BASELINE( baseline_name IN VARCHAR2, cascade IN BOOLEAN DEFAULT false, dbid IN NUMBER DEFAULT NULL);
パラメータ
表119-14 DROP_BASELINEのパラメータ
| パラメータ | 説明 |
|---|---|
|
|
ベースラインの名前。 |
|
|
|
|
|
(オプションの)データベースID(デフォルトはローカルDBID)。 |
例
この例では、元のスナップショットを削除せずに、ベースライン'oltp_peakload_bl'を削除します。
EXECUTE DBMS_WORKLOAD_REPOSITORY.DROP_BASELINE (
baseline_name => 'oltp_peakload_bl');
DROP_BASELINE操作後にDBA_HIST_BASELINEビューを問い合せると、指定したベースライン定義が削除されているのが確認できます。DBA_HIST_SNAPSHOTビューを問い合せて、元のスナップショットが変更されていないことを確認できます。
このプロシージャは、一定の範囲のスナップショットを削除します。
構文
DBMS_WORKLOAD_REPOSITORY.DROP_SNAPSHOT_RANGE( low_snap_id IN NUMBER, high_snap_id IN NUMBER dbid IN NUMBER DEFAULT NULL);
パラメータ
表119-15 DROP_SNAPSHOT_RANGEプロシージャのパラメータ
| パラメータ | 説明 |
|---|---|
|
|
削除するスナップショットの最低のスナップショットID。 |
|
|
削除するスナップショットの最高のスナップショットID。 |
|
|
データベースID(デフォルトはローカルDBID)。 |
例
この例では、ローカル・データベースのスナップショットID102から105までのスナップショットの範囲を削除します。
EXECUTE DBMS_WORKLOAD_REPOSITORY.DROP_SNAPSHOT_RANGE(102, 105);
Drop Snapshot操作後にdba_hist_snapshotビューを問い合せると、ワークロード・リポジトリからスナップショット102から105が削除されているのが確認できます。
このプロシージャは、スナップショット生成の3つの側面を制御します。
INTERVAL設定は、スナップショットが自動的に取得される間隔に影響を与えます。
RETENTION設定は、ワークロード・リポジトリにスナップショットが保持される期間に影響を与えます。
Top基準ごとに取得されるSQLの数。ユーザーがTop N SQLの値を手動で指定すると、AWR SQLコレクションは、自動および手動によるスナップショットの両方に対して、ユーザー指定の数を使用します。
2つのオーバーロードがあります。最初のオーバーロードはtopnsql引数のNUMBERを使用し、2番目のオーバーロードはVARCHAR2を使用します。これらの違いについては、パラメータの説明を参照してください。
構文
DBMS_WORKLOAD_REPOSITORY.MODIFY_SNAPSHOT_SETTINGS( retention IN NUMBER DEFAULT NULL, interval IN NUMBER DEFAULT NULL, topnsql IN NUMBER DEFAULT NULL, dbid IN NUMBER DEFAULT NULL); DBMS_WORKLOAD_REPOSITORY.MODIFY_SNAPSHOT_SETTINGS( retention IN NUMBER DEFAULT NULL, interval IN NUMBER DEFAULT NULL, topnsql IN VARCHAR2, dbid IN NUMBER DEFAULT NULL);
パラメータ
表119-16 MODIFY_SNAPSHOT_SETTINGSプロシージャのパラメータ
| パラメータ | 説明 |
|---|---|
|
|
新しい保存期間(分単位)。値は、
|
|
|
スナップショット間の新しい間隔設定(分単位)。値は、
|
|
|
|
|
|
スナップショット設定を変更するAWR内のデータベース識別子。 |
例
この例では、ローカル・データベースのinterval設定を1時間に変更し、retention設定を2週間に変更します。
EXECUTE DBMS_WORKLOAD_REPOSITORY.MODIFY_SNAPSHOT_SETTINGS( interval => 60, retention => 20160);
このプロシージャの実行後にDBA_HIST_WR_CONTROL表を問い合せると、これらの設定の変更を確認できます。