43 DBMS_AWRAPP
DBMS_AWRAPPには、アプリケーション固有のAWRレポートを生成するためのサブプログラムが含まれています。
43.1 DBMS_AWRAPPの使用
アプリケーション固有のAWR (自動ワークロード・リポジトリ)は、個々のアプリケーションにスコープ指定されたパフォーマンス・データを取得および分析します。
アプリケーション・レベルの高使用SQL文は、データベース全体の上位SQL間でランク付けされない場合、標準のAWRレポートに表示されない場合があります。したがって、アプリケーション固有のAWRレポートの生成により、パフォーマンスに関する、的を絞ったレンズがもたらされます。
アプリケーション固有のAWRレポートを生成するようにデータベースを設定するには、次のステップに従います:
ステップ1: アプリケーション固有のAWRスナップショットの有効化
ENABLE_AWRAPP_SNAPSHOTプロシージャは、AWRスナップショット内のアプリケーション固有データの収集を有効にします。これは、適切な権限(通常はDBA)を持つユーザーが実行する必要があります。
begin
DBMS_WORKLOAD_REPOSITORY.ENABLE_AWRAPP_SNAPSHOT;
end;
/ステップ2: 追跡するアプリケーションの指定
機能を有効にした後、指定した表または構成に名前を挿入して、追跡するアプリケーションを定義します。DBMS_AWRAPP_ADMIN.CREATE_APPMAPプロシージャを使用して、アプリケーション識別子を定義し、それを特定のアプリケーション・プログラムに関連付けます。アプリケーション識別子は、関連するプログラムの論理グループとして機能します。このステップにより、AWRは指定されたアプリケーションのデータのみを収集します。
/* define MY_APPMAP_1 with module like '%payroll%', action like '%payroll%', client_info like '%payroll%', and client_identifier like '%payroll%'. */
begin
DBMS_AWRAPP_ADMIN.CREATE_APPMAP(
appmap_name => 'MY_APPMAP_1' ,
module_pat => '%payroll%' ,
action_pat => '%payroll%' ,
client_info_pat => '%payroll%' ,
client_identifier_pat => '%payroll%' );
end;
/ステップ3: アプリケーションの追跡の開始
指定したAPPMAPのアプリケーション・パフォーマンスの追跡を開始するには、DBMS_WORKLOAD_REPOSITORY.INCLUDE_APPMAPを使用します。この手順により、AWRがアプリケーションのパフォーマンス・データの収集を開始し、データが通常のシステム全体のAWRスナップショットに含まれます。
begin
DBMS_WORKLOAD_REPOSITORY.INCLUDE_APPMAP(APPMAP_NAME => 'MY_APPMAP_1' );
DBMS_WORKLOAD_REPOSITORY.INCLUDE_APPMAP(APPMAP_NAME => 'MY_APPMAP_2' );
end;
/アプリケーションを追跡した後、アプリケーション固有のAWRレポートを生成します。ステップ4で使用するAWRスナップショットは、ステップ1から3の完了後に収集する必要があります。
ステップ4: レポートの生成
AWRアプリケーション・レポートは、DBMS_AWRAPP.GENERATE_AWRAPP_REPORTを使用して生成されます。
spool awr_application_report.html
select dbms_awrapp.generate_awrapp_report(2171, 4, 5, '1', 'html') from dual;
spool offステップ5: レポートの分析
レポートには、選択した時間間隔で収集されたアプリケーション固有のSQLパフォーマンス・データが取得されます。
次のデータ・ディクショナリ・ビューを使用して、アプリケーション・スナップショットのパフォーマンス・データを取得できます:
DBA_AWRAPP_APPMAP_CONTROL- ワークロード・リポジトリの制御情報(アプリケーション・パフォーマンス追跡ステータス)を表示します。DBA_AWRAPP_APPMAP_DEF- データベース内のすべてのアプリケーション・マップに関する情報を表示します。DBA_AWRAPP_INFO(またはAWR_PDB_AWRAPP_INFO) - AWRアプリケーション・スナップショットとワークロード・リポジトリ内のそのアプリケーション・マップ間のマッピングを表示します。DBA_AWRAPP_SQLSTAT(またはAWR_PDB_AWRAPP_SQLSTAT) - ワークロード・リポジトリで取得されたアプリケーションに固有のSQL統計に関する情報を表示します。DBMS_AWRAPP_ADMIN.DROP_AWRAPP- 指定したAPPMAP定義をデータベースから削除しますDBMS_WORKLOAD_REPOSITORY.EXCLUDE_APPMAP- AWR内の指定されたアプリケーションのパフォーマンス追跡を停止します。
43.2 DBMS_AWRAPPサブプログラムの要約
DBMS_AWRAPPには、次のファンクションが含まれています。
表43-1 DBMS_AWRAPPパッケージのサブプログラム
| サブプログラム | 説明 |
|---|---|
|
スナップショット範囲にわたるそのデータベース固有のAWRを生成します。 |
43.2.1 GENERATE_AWRAPP_REPORTファンクション
このファンクションは、スナップショット範囲にわたるそのデータベース固有のAWRを生成します。
構文
DBMS_AWRAPP.GENERATE_AWRAPP_REPORT(
dbid IN NUMBER,
beg_snap IN NUMBER,
end_snap IN NUMBER,
inst_val IN VARCHAR2 DEFAULT 'ALL',
format IN VARCHAR2 DEFAULT 'JSON',
options IN CLOB DEFAULT NULL)
RETURN CLOB;ノート:
DB_DEVELOPER_ROLEがあるユーザーには、このファンクションをコールする権限があります。
このアプリケーション・レポートには、追跡したアプリケーションに固有の、一定期間内のパフォーマンス・データが含まれています。このレポートには次のセクションがあります
- レポート・ヘッダー
- アプリケーション情報
- 指定したアプリケーションの上位SQL。
- 上位SQLの詳細
パラメータ
表43-2 GENERATE_AWRAPP_REPORTファンクションのパラメータ
| パラメータ | 説明 |
|---|---|
|
|
データベース識別子。 |
|
|
開始スナップショットの識別子。 |
|
|
終了スナップショットの識別子。 |
|
|
インスタンス番号 |
|
|
出力の |
|
|
CLOB出力のオプション。 |
例43-1 AWRからのアプリケーション固有のレポートの生成
DBMS_AWRAPP.GENERATE_AWRAPP_REPORT(
dbid => 111111,
beg_snap => 1,
end_snap => 3,
inst_val => '1',
format => 'html');