ヘッダーをスキップ
Oracle Database Real Application Testingユーザーズ・ガイド
11gリリース1(11.1)
B51856-01
  目次
目次
索引
索引

戻る
戻る
 
次へ
次へ
 

6 リプレイされたワークロードの分析

この章では、データベース・リプレイのレポートを生成および分析する方法について説明します。 データベース・リプレイのレポートには、ワークロードの取得レポートおよびワークロードのリプレイ・レポートの2種類があります。 ワークロードの取得レポートには、取得されたワークロードの統計、取得された上位セッション・アクティビティに関する情報、および取得プロセス中に使用されたワークロード・フィルタが含まれます。 ワークロードのリプレイ・レポートには、取得システムとリプレイ・システムのパフォーマンスの相違の評価に使用できる情報が含まれています。

内容は次のとおりです。


注意:

リプレイの分析が完了したら、ワークロード・ディレクトリ・オブジェクトを別の物理的な場所にバックアップしてから、そのデータベースをワークロード取得時点の元の状態にリストアし、ワークロードのリプレイを繰り返して、システムに対する他の変更をテストすることができます。

Enterprise Managerを使用したワークロードの取得レポートの生成

この項では、Oracle Enterprise Managerを使用してワークロードの取得レポートを生成する方法について説明します。 ワークロードの取得レポートを生成するための主要ツールは、Oracle Enterprise Managerです。 なんらかの理由でOracle Enterprise Managerを使用できない場合は、APIを使用してワークロードの取得レポートを生成できます。詳細は、「APIを使用したワークロードの取得レポートの生成」を参照してください。

Enterprise Managerを使用してワークロードの取得レポートを生成するには、次の手順を実行します。

  1. 「ソフトウェアとサポート」ページの「Real Application Testing」で、「データベース・リプレイ」をクリックします。

    「データベース・リプレイ」ページが表示されます。

  2. 「ワークロードの取得履歴の表示」をクリックします。

    「ワークロードの取得履歴の表示」ページが表示されます。

  3. ワークロードの取得レポートを実行するワークロードの取得を選択し、「表示」をクリックします。

    「ワークロードの取得の表示」ページが表示されます。

  4. ワークロードの取得レポートを表示するには、「ワークロードの取得レポートの表示」をクリックします。

    レポートの生成中は、「レポート」ウィンドウが表示されます。

  5. レポートが生成されたら、「ファイルに保存」をクリックしてレポートを保存できます。

    ワークロードの取得レポートの使用方法については、「ワークロードの取得レポートの使用」を参照してください。

APIを使用したワークロードの取得レポートの生成

この項では、DBMS_WORKLOAD_CAPTUREパッケージを使用してワークロードの取得レポートを生成する方法について説明します。 ワークロードの取得レポートは、Oracle Enterprise Managerを使用して生成することもできます。詳細は、「Enterprise Managerを使用したワークロードの取得レポートの生成」を参照してください。

最新のワークロードの取得に関するレポートを生成するには、次のようにDBMS_WORKLOAD_CAPTURE.GET_CAPTURE_INFOプロシージャおよびDBMS_WORKLOAD_CAPTURE.REPORTファンクションを使用します。

DECLARE
  cap_id         NUMBER;
  cap_rpt        CLOB;
BEGIN
  cap_id  := DBMS_WORKLOAD_CAPTURE.GET_CAPTURE_INFO(dir => 'dec06');
  cap_rpt := DBMS_WORKLOAD_CAPTURE.REPORT(capture_id => cap_id,
                           format => DBMS_WORKLOAD_CAPTURE.TYPE_TEXT);
END;
/

この例では、GET_CAPTURE_INFOプロシージャは、dec06ディレクトリ内のワークロードの取得に関するすべての情報を収集し、そのワークロードの取得に対応する適切なcap_idを戻します。 REPORTファンクションは、GET_CAPTURE_INFOプロシージャによって戻されたcap_idを使用してテキスト・レポートを生成します。

GET_CAPTURE_INFOプロシージャでは、必須パラメータdirを使用します。このパラメータは、ワークロードの取得のディレクトリ・オブジェクト名を指定します。

REPORTファンクションでは、次のパラメータを使用します。

ワークロードの取得レポートの使用方法については、「ワークロードの取得レポートの使用」を参照してください。


参照:

DBMS_WORKLOAD_CAPTUREパッケージについては、『Oracle Database PL/SQLパッケージ・プロシージャおよびタイプ・リファレンス』を参照してください。

ワークロードの取得レポートの使用

ワークロードの取得レポートには、ワークロードの取得の有効性を評価するために使用できる様々なタイプの情報が含まれます。 このレポートに示される情報から、取得したワークロードについて、次の項目を確認できます。

ワークロードの取得レポートに含まれる情報は、次のカテゴリに分類されます。

Enterprise Managerを使用したワークロードのリプレイ・レポートの生成

この項では、Oracle Enterprise Managerを使用してワークロードのリプレイ・レポートを生成する方法について説明します。 ワークロードのリプレイ・レポートを生成するための主要ツールは、Oracle Enterprise Managerです。 なんらかの理由でOracle Enterprise Managerを使用できない場合は、APIを使用してワークロードのリプレイ・レポートを生成できます。詳細は、「APIを使用したワークロードのリプレイ・レポートの生成」を参照してください。

Enterprise Managerを使用してワークロードのリプレイ・レポートを生成するには、次の手順を実行します。

  1. 「ソフトウェアとサポート」ページの「Real Application Testing」で、「データベース・リプレイ」をクリックします。

    「データベース・リプレイ」ページが表示されます。

  2. 「タスクに移動」列で、「ワークロード・リプレイ」タスクに対応するアイコンをクリックします。

    「ワークロード・リプレイ」ページが表示されます。

  3. 「ディレクトリ・オブジェクト」リストで、ワークロードのリプレイ・レポートを生成するリプレイで使用される事前処理済のワークロードが含まれているディレクトリを選択します。

    ディレクトリを選択すると、「ワークロード・リプレイ」ページがリフレッシュされて「取得サマリー」および「リプレイ履歴」セクションが表示されます。

  4. 「リプレイ履歴」で、ワークロードのリプレイ・レポートを生成するリプレイを選択し、「表示」をクリックします。

    dbr_replay_history.gifの説明が続きます。
    dbr_replay_history.gifの説明

    「ワークロード・リプレイの表示」ページが表示されます。

  5. 「ワークロード・リプレイレポートの表示」をクリックします。

    ワークロードのリプレイ・レポートの使用については、「ワークロードのリプレイ・レポートの使用」を参照してください。

APIを使用したワークロードのリプレイ・レポートの生成

この項では、DBMS_WORKLOAD_REPLAYパッケージを使用してワークロードのリプレイ・レポートを生成する方法について説明します。 ワークロードのリプレイ・レポートは、Oracle Enterprise Managerを使用して生成することもできます。詳細は、「Enterprise Managerを使用したワークロードのリプレイ・レポートの生成」を参照してください。

ワークロードの取得に関する最新のワークロードのリプレイ・レポートを生成するには、次のようにDBMS_WORKLOAD_REPLAY.GET_REPLAY_INFOプロシージャおよびDBMS_WORKLOAD_REPLAY.REPORTファンクションを使用します。

ワークロードのリプレイ・レポートを生成するには、次のようにREPORTファンクションを使用します。

DECLARE
  cap_id         NUMBER;
  rep_id         NUMBER;
  rep_rpt        CLOB;
BEGIN
  cap_id := DBMS_WORKLOAD_REPLAY.GET_REPLAY_INFO(dir => 'dec06');
  /* 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_TEXT);
END;
/

この例では、GET_REPLAY_INFOプロシージャが、dec06ディレクトリ内のワークロードの取得に関するすべての情報、およびこのディレクトリに含まれているワークロードのリプレイのすべての試行履歴を取得します。 このプロシージャは、最初にワークロードの取得に関する情報が含まれているDBA_WORKLOAD_CAPTURESに行をインポートします。 次に、リプレイ試行がリプレイ・ディレクトリから取得されるたびに、DBA_WORKLOAD_REPLAYSビューに行をインポートします。 SELECT文は、ワークロードの最新のリプレイの適切なrep_idを戻します。 REPORTファンクションは、SELECT文によって戻されたrep_idを使用してテキスト・レポートを生成します。

GET_CAPTURE_INFOプロシージャでは、必須パラメータdirを使用します。このパラメータは、ワークロードのリプレイのディレクトリ・オブジェクト名を指定します。

REPORTファンクションでは、次のパラメータを使用します。

ワークロードのリプレイ・レポートの使用については、「ワークロードのリプレイ・レポートの使用」を参照してください。


参照:

DBMS_WORKLOAD_REPLAYパッケージについては、『Oracle Database PL/SQLパッケージ・プロシージャおよびタイプ・リファレンス』を参照してください。

ワークロードのリプレイ・レポートの使用

テスト・システムでワークロードをリプレイすると、取得した内容とリプレイされる内容に多少の相違が発生する場合があります。 リプレイの相違が発生する要因は多数ありますが、それらはワークロードのリプレイ・レポートを使用して分析できます。 ワークロードのリプレイ・レポートに含まれている情報は、パフォーマンスおよびデータの相違で構成されています。

パフォーマンスの相違は、データベースのパフォーマンス全体に影響を与える新しいアルゴリズムがリプレイ・システムに導入された場合に発生する可能性があります。 たとえば、より新しいバージョンのOracle Databaseでワークロードがリプレイされると、新しいアルゴリズムによって特定のリクエストがより高速に実行される可能性があり、この高速の実行が相違として現れます。 この場合は、望ましい相違です。

データの相違は、DMLまたはSQL問合せの結果が、ワークロードですでに取得された結果と一致しない場合に発生します。 たとえば、リプレイ時にSQL文によって取得時より少ない数の行が戻されることがあります。

エラーの相違は、リプレイされたデータベース・コールで次のような状況が発生した場合に現れます。

ワークロードのリプレイ・レポートに含まれる情報は、次のカテゴリに分類されます。