DBMS_WORKLOAD_REPLAYパッケージを使用してワークロードのリプレイ・レポートを生成できます。また、「Enterprise Managerを使用したワークロード・リプレイ・レポートへのアクセス」で説明されているように、Oracle Enterprise Managerを使用してワークロード・リプレイ・レポートを生成することも可能です。
APIを使用してワークロードの取得に対する最新のワークロードのリプレイ・レポートを生成するには、次の手順を実行します。
「ワークロード・リプレイに関する情報の取得」で説明されているように、ワークロードの取得、およびDBMS_WORKLOAD_REPLAY.GET_REPLAY_INFOファンクションをコールすることによる、リプレイ・ディレクトリ・オブジェクトからのワークロード・リプレイ試行の履歴に関する情報を取得します。
GET_REPLAY_INFOファンクションは1つのキャプチャ・ディレクトリのcap_idを戻します(統合キャプチャ・ディレクトリの場合、戻されるcap_idは0です)。
GET_REPLAY_INFOファンクションにより戻されるcap_idを使用して、問合せを実行し、ワークロードの最新のリプレイの適切なrep_idを戻します。
DBMS_WORKLOAD_REPLAY.REPORTファンクションをコールします。
REPORTファンクションは、SELECT文によって戻されたrep_idを使用してレポートを生成します。
REPORTファンクションでは、次のパラメータを使用します。
replay_id: レポートが生成されるワークロードのリプレイを含むディレクトリを指定する必須パラメータ。このディレクトリは、ワークロードのリプレイを含むホスト・システム内の有効なディレクトリである必要があります。このパラメータの値は、前の問合せで戻されたrep_idと一致する必要があります。
format: レポートの形式を指定する必須パラメータ。有効な値は、DBMS_WORKLOAD_REPLAY.TYPE_TEXT、DBMS_WORKLOAD_REPLAY.TYPE_HTMLおよびDBMS_WORKLOAD_REPLAY.TYPE_XMLです。
この例では、GET_REPLAY_INFOファンクションが、ワークロードの取得に関するすべての情報と、jul14リプレイ・ディレクトリ・オブジェクトからのすべてのワークロード・リプレイ試行の履歴に関する情報を収集します。このファンクションは、DBA_WORKLOAD_REPLAYSビューのCAPTURE_ID列に関連付けられて、取得した情報にアクセスできる、キャプチャ・ディレクトリのcap_idを戻します。SELECT文は最新のワークロードのリプレイの適切なrep_idを戻します。次に、REPORTファンクションは、SELECT文によって戻されたrep_idを使用してHTMLレポートを生成します。
DECLARE
cap_id NUMBER;
rep_id NUMBER;
rep_rpt CLOB;
BEGIN
cap_id := DBMS_WORKLOAD_REPLAY.GET_REPLAY_INFO(replay_dir => 'jul14');
/* Get the latest replay for that capture */
SELECT max(id)
INTO rep_id
FROM dba_workload_replays
WHERE capture_id = cap_id;
rep_rpt := DBMS_WORKLOAD_REPLAY.REPORT(replay_id => rep_id,
format => DBMS_WORKLOAD_REPLAY.TYPE_HTML);
END;
/
ワークロードのリプレイ・レポートの解釈方法については、「ワークロード・リプレイ・レポートの確認」を参照してください。
関連項目:
DBMS_WORKLOAD_REPLAYパッケージについては、『Oracle Database PL/SQLパッケージおよびタイプ・リファレンス』を参照してください。