日本語PDF

13 取得およびリプレイ済ワークロードの分析

この章では、様々なデータベース・リプレイ・レポートを使用して、取得およびリプレイしたワークロードを分析する方法を説明します。この章の構成は、次のとおりです。

ノート:

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

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

ワークロードの取得レポートには、取得されたワークロード統計、取得された上位セッション・アクティビティ、および取得プロセス中に使用されたすべてのワークロード・フィルタが含まれます。

次の項では、ワークロードの取得レポートの生成および使用方法について説明します。

Enterprise Managerを使用したワークロードの取得レポートへのアクセス

この項では、Oracle Enterprise Managerを使用してワークロードの取得レポートを生成する方法について説明します。

ワークロードの取得レポートを生成するための主ツールは、Oracle Enterprise Managerです。なんらかの理由でOracle Enterprise Managerが使用できない場合は、「APIを使用したワークロードの取得レポートの生成」で説明されているように、APIを使用してワークロードの取得レポートを生成できます。

Enterprise Managerを使用し、ワークロードの取得レポートにアクセスするには:

  1. Enterprise Manager Cloud Controlコンソールの「エンタープライズ」メニューで、「クオリティ管理」「データベース・リプレイ」の順に選択します。

    「データベース・ログイン」ページが表示されたら、管理者権限のあるユーザーとしてログインします。

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

  2. ステータスが「完了」以外の取得のデータベース・リプレイ・ページにある「取得済ワークロード」タブで、「取得」表から必要な取得の名前をクリックします。

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

  3. ワークロードの取得レポートおよびワークロードの取得ASH分析レポートに対するコントロールにアクセスするには、「レポート」タブをクリックします。
    • ワークロードの取得レポートには、取得されたデータ・コンポーネントと取得されなかったデータ・コンポーネントのタイプを示す、詳細な出力が含まれます。

    • 取得ASH分析レポートには、データベース時間を最も消費しているセッションが表示されます。このレポートには積上げグラフが表示され、イベント、アクティビティ・クラス、モジュール/アクション、セッション、インスタンスIDおよびPL/SQLファンクションなどの複数のディメンションのアクティブ・セッション・アクティビティを簡単に可視化できます。

      レポートの「その他のアクティビティ」リストで選択されている場合は、そのアクティビティが取得されていないことを意味します。

  4. レポートにアクセスした後、「保存」をクリックして保存できます。

    関連項目:

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

DBMS_WORKLOAD_CAPTUREパッケージを使用してワークロードの取得レポートを生成できます。また、「Enterprise Managerを使用したワークロードの取得レポートへのアクセス」で説明されているように、Oracle Enterprise Managerを使用してワークロードの取得レポートを生成することも可能です。

最新のワークロードの取得レポートを生成するには:

  1. DBMS_WORKLOAD_CAPTURE.GET_CAPTURE_INFOプロシージャを使用します。

    GET_CAPTURE_INFOプロシージャは、ワークロードの取得に関するすべての情報を収集し、そのワークロードの取得に対応するcap_idを戻します。このファンクションでは、必須パラメータdirを使用します。このパラメータは、ワークロードの取得のディレクトリ・オブジェクト名を指定します。

  2. DBMS_WORKLOAD_CAPTURE.REPORTファンクションをコールします。

    REPORTファンクションは、GET_CAPTURE_INFOプロシージャによって戻されたcap_idを使用してレポートを生成します。このファンクションでは、次のパラメータを使用します。

    • capture_id: レポートが生成されるワークロードの取得を含むディレクトリを指定する必須パラメータ。このディレクトリは、ワークロードの取得を含むホスト・システム内の有効なディレクトリである必要があります。このパラメータの値は、GET_CAPTURE_INFOプロシージャによって戻されるcap_idに一致する必要があります。

    • format: レポートの形式を指定する必須パラメータ。有効値は、DBMS_WORKLOAD_CAPTURE.TYPE_TEXTおよびDBMS_WORKLOAD_REPLAY.TYPE_HTMLです。

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

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

関連項目:

ワークロードの取得レポートの確認

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

  • 除外するワークロードが含まれていないかどうか

  • リプレイできるかどうか

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

  • ワークロードの取得に関する詳細情報(ワークロードの取得の名前、定義済のフィルタ、日付、時刻、取得のSCNなど)

  • ワークロードの取得に関する全般的な統計(取得済の合計DB時間、取得済のログインとトランザクションの数など)と、合計システム・アクティビティに対する割合

  • 取得されたワークロードのプロファイル

  • バージョン制限のために取得されなかったワークロードのプロファイル

  • 定義済のフィルタによって除外された未取得のワークロードのプロファイル

  • バックグラウンド・プロセスまたはスケジュール済のジョブで構成された未取得のワークロードのプロファイル

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

ワークロード・リプレイ・レポートには、取得システムとリプレイ・システム間のパフォーマンスの違いの測定に使用できる情報が含まれます。

次の項では、ワークロードのリプレイ・レポートの生成および確認方法について説明します。

Enterprise Managerを使用したワークロード・リプレイ・レポートへのアクセス

この項では、Oracle Enterprise Managerを使用してワークロードのリプレイ・レポートを生成する方法について説明します。

ワークロードのリプレイ・レポートを生成するための主ツールは、Oracle Enterprise Managerです。なんらかの理由でOracle Enterprise Managerが使用できない場合は、「APIを使用したワークロードのリプレイ・レポートの生成」で説明されているように、APIを使用してワークロードのリプレイ・レポートを生成できます

Enterprise Managerを使用したワークロード・リプレイ・レポートにアクセスするには:

  1. Enterprise Manager Cloud Controlコンソールの「エンタープライズ」メニューで、「クオリティ管理」「データベース・リプレイ」の順に選択します。

    「データベース・ログイン」ページが表示されたら、管理者権限のあるユーザーとしてログインします。

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

  2. 「リプレイ・タスク」タブをクリックして、レポートにアクセスするリプレイを選択します。
  3. 「レポート」タブをクリックして、個別のレポートにアクセスします。

    完了したワークロードのリプレイに対して表示できるレポートには、次の数種類があります。

    • データベース・リプレイ

      このレポートは、リプレイの相違およびワークロード・プロファイルを含む表形式の完全なリプレイ統計を表示する場合に使用します。

    • 期間比較ADDM

      このレポートは、1つのワークロード・リプレイとその取得、または同じ取得の別のリプレイとの高レベルの比較を実行する場合に使用します。このレポートでは、5分以上のデータベース時間を含むワークロード・リプレイのみを比較できます。

      レポートの次のセクションを調べ、2つの期間の間のパフォーマンス変化とその変化の原因を把握します。

      • 概要

        レポートのこの部分に、両方の期間に共通するSQL文の平均的なリソース消費に基づいて基本期間および比較期間を比較できるSQLの共通性が表示されます。

        100%の共通性とは、両方の期間でのワークロードの署名が同一であることを示します。リプレイ中のワークロードが同じ(リプレイ・フィルタを使用していないと想定)であるので、このような場合に100%の共通性が期待されます。0%の値は、特定のワークロード・ディメンションについて2つの期間に共通するものがないことを示します。

        共通性は入力タイプ(つまり実行されているSQL)と、実行中のSQL文の負荷に基づいています。つまり、ある期間でのみ実行されるが、時間がかからないSQL文は共通性に影響を与えません。そのため、一部のSQL文が2つの期間のいずれかでのみ実行されている場合でも、それらのSQL文が多くのリソースを消費していない条件で2つのワークロードの100%の共通性を確保できます。

      • 構成

        表示される情報には、インスタンス、ホストおよびデータベース別に分類された各種パラメータのベース期間と比較期間の値が含まれます。

      • 結果

        結果にパフォーマンスの向上が示され、システム変更による主なパフォーマンスの差異を識別できる可能性があります。原因を把握してこれを解決すると、マイナスの結果が解消されます。

        基本期間および比較期間に表示される値は、データベース時間に関するパフォーマンスを表します。

        「影響の変更」の値は、ある期間から別の期間のパフォーマンスの変化の規模の測定値を表します。これは、それぞれの期間で消費したデータベースの合計時間によって測定した問題またはアイテムに適用できます。絶対値は降順でソートされます。

        値がプラスの場合は増加、マイナスの場合は減少を示します。たとえば、影響の変化が200%の場合は、期間2が期間1より3倍低速であることを意味します。

        ADDMおよびSQLチューニング・アドバイザなどのパフォーマンス・チューニング・ツールを実行して、比較期間の問題を修正し、全体的なシステム・パフォーマンスを向上させることができます。

      • リソース

        表示される情報は、両方の期間のデータベース時間分割のサマリーと、CPU、メモリー、I/Oおよび相互接続のリソース使用率を示します(Oracle RACのみ)。

    • SQLパフォーマンス・アナライザ

      このレポートは、ワークロード取得のSQLチューニング・セットを、ワークロード・リプレイの別のSQLチューニング・セットと、または2つのワークロード・リプレイの2つのSQLチューニング・セットと比較する場合に使用します。SQLチューニング・セットをデータベース・リプレイと比較すると、SQL文ごとにすべての実行計画が検討され、表示されるのに対し、SQLパフォーマンス・アナライザのテスト実行では、SQLを試行するごとに1SQL文につき1つの実行計画しか生成されないため、前者の方がより多くの情報が得られます。

    • リプレイの期間比較

      このレポートは、1つのワークロード・リプレイのAWRデータをその取得、または同じ取得の別のリプレイと比較する場合に使用します。このレポートを実行する前に、取得またはリプレイしたワークロードのAWRデータを事前にエクスポートしておく必要があります。

      このレポートの使用方法の詳細は、「リプレイの期間比較レポートの確認」を参照してください。

    • リプレイASH分析

      リプレイASH分析レポートには、ドロップダウン・メニューで選択したカテゴリにリプレイされたワークロードの指定した期間のアクティブ・セッション履歴(ASH)情報が含まれます。このレポートを実行する前に、取得またはリプレイしたワークロードから事前にAWRデータをエクスポートしておく必要があります。

      チャートには、待機クラスのワークロード・アクティビティ・ブレークダウン値が表示され、システムに悪影響を与えているトップ・アクティビティ・セッションの詳細な統計が示されます。

      システム・アクティビティのグラフィカル・ビューを表示するには、オプションでロード・マップを使用できます。ロード・マップは、選択した期間内でアクティビティの変更を時系列で確認しない場合に1次元または多次元レイアウトのアクティビティを表示する際に役立ちます。

    関連項目:

    リプレイの期間比較レポートの解釈方法の詳細は、『Oracle Database 2日でパフォーマンス・チューニング・ガイド』を参照してください

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

DBMS_WORKLOAD_REPLAYパッケージを使用してワークロードのリプレイ・レポートを生成できます。また、「Enterprise Managerを使用したワークロード・リプレイ・レポートへのアクセス」で説明されているように、Oracle Enterprise Managerを使用してワークロード・リプレイ・レポートを生成することも可能です。

APIを使用してワークロードの取得に対する最新のワークロードのリプレイ・レポートを生成するには:

  1. 「ワークロード・リプレイに関する情報の取得」で説明されているように、ワークロードの取得、およびDBMS_WORKLOAD_REPLAY.GET_REPLAY_INFOファンクションをコールすることによる、リプレイ・ディレクトリ・オブジェクトからのワークロード・リプレイ試行の履歴に関する情報を取得します。

    GET_REPLAY_INFOファンクションは1つのキャプチャ・ディレクトリのcap_idを戻します(統合キャプチャ・ディレクトリの場合、戻されるcap_idは0です)。

  2. GET_REPLAY_INFOファンクションにより戻されるcap_idを使用して、問合せを実行し、ワークロードの最新のリプレイの適切なrep_idを戻します。

  3. DBMS_WORKLOAD_REPLAY.REPORTファンクションをコールします。

    REPORTファンクションは、SELECT文によって戻されたrep_idを使用してレポートを生成します。

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

    • replay_id: レポートが生成されるワークロードのリプレイを含むディレクトリを指定する必須パラメータ。このディレクトリは、ワークロードのリプレイを含むホスト・システム内の有効なディレクトリである必要があります。このパラメータの値は、前の問合せで戻されたrep_idと一致する必要があります。

    • format: レポートの形式を指定する必須パラメータ。有効な値は、DBMS_WORKLOAD_REPLAY.TYPE_TEXTDBMS_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;
/

関連項目:

ワークロードのリプレイ・レポートの確認

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

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

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

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

  • 取得されていない新しいエラーが発生した場合

  • 取得されたエラーが発生しなかった場合

  • 取得されたエラーとは異なるエラーが発生した場合

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

  • ワークロードのリプレイおよびワークロードの取得に関する詳細情報(ジョブ名、ステータス、データベース情報、各プロセスの継続時間と時刻、ディレクトリ・オブジェクト、ディレクトリ・パスなど)

  • ワークロードのリプレイに関して選択されたリプレイ・オプションおよび起動されたリプレイ・クライアントの数

  • ワークロードのリプレイおよびワークロードの取得に関する全般的な統計(取得済およびリプレイ済の合計DB時間、取得済およびリプレイ済のログインとトランザクションの数など)と、合計システム・アクティビティに対する割合

  • リプレイされたワークロードのプロファイル

  • リプレイの相違

  • エラーの相違

  • DMLおよびSQL問合せのデータの相違

Oracle Databaseリリース19c以降、ワークロード・リプレイ・レポートには、遅いワークロード・リプレイの診断に必要な情報が示されます。このワークロード・リプレイ・レポートに含まれる情報には、次の追加セクションがあります。

リプレイ・セッション

リプレイ・セッションのセクションには、進行中および完了済のリプレイ・セッションに関する統計情報(上位イベント、リプレイ速度が下位のセッション、リプレイ速度が上位のセッションなど)が含まれています。進行中のリプレイ・セッションに関連する統計情報は、リプレイが進行中の場合にのみ示されます。この情報を使用すると、進行中および完了済リプレイ・セッションの上位イベント、取得よりも遅いリプレイ・セッション、取得とリプレイのセッション経過時間の比較を確認できます。

同期化

ワークロードのリプレイ時には、取得したSQL文の実行順序が維持されます。リプレイ中にSQL文の実行の遅延またはブロックが発生すると、ワークロード・リプレイが遅くなります。

同期化のセクションには、同期化されたSQL文のいずれかの実行をブロックしているセッションに関する情報が示されます。この情報は、SQL文の実行がブロックされている場合にのみ表示されます。このセクションの情報を使用すると、ワークロードのリプレイがブロックされている理由やワークロードの取得よりも遅くなっている理由を確認できます。このセクションには、上位イベントと、同期されたSQL文を実行しているセッションに関連する上位イベントとともに上位のSQL文も示されます。

追跡されたコミット

ワークロードの取得中に実行されたコミットとその実行間で経過した時間は、データベース・リプレイによって追跡されます。遅いコミットを検出して、取得済ワークロードのうちワークロード・リプレイを遅くしている部分を識別できます。

追跡されたコミットのセクションには、取得したコミットの数とコミットの実行時刻に関する情報が含まれています。この情報を使用して、ワークロード・リプレイの動作がワークロードの取得よりも遅くなっているかどうかを調べます。

セッションの失敗

ユーザー・セッションのワークロード・リプレイが失敗すると、そのセッションの残りのコールのリプレイはスキップされます。セッションの失敗のセクションには、セッションが失敗したときに実行されていたSQL文、ファイルID、失敗したセッションのコール・カウンタ、および実行されなかったコールの合計数に関する情報が示されます。

リプレイの期間比較レポートの使用

リプレイの期間比較レポートは様々な目的に使用できます。たとえば、リプレイの期間比較レポートを使用すると、次のパフォーマンスを比較できます。
  • ワークロード・リプレイとそのワークロード取得

  • ワークロード・リプレイと、同じワークロード取得の別のリプレイ

  • 複数のワークロード取得と統合リプレイ

次の項では、リプレイの期間比較レポートの生成および確認方法について説明します。

関連項目:

APIを使用したリプレイの期間比較レポートの生成

この項では、DBMS_WORKLOAD_REPLAYパッケージを使用して、リプレイの期間比較レポートを生成する方法について説明します。このレポートでは、データベース時間が5分以上のワークロード・リプレイのみを比較できます。

リプレイの期間比較レポートを生成するには、DBMS_WORKLOAD_REPLAY.COMPARE_PERIOD_REPORTプロシージャを使用します。

BEGIN
  DBMS_WORKLOAD_REPLAY.COMPARE_PERIOD_REPORT (
                           replay_id1 => 12,
                           replay_id2 => 17,
                           format => DBMS_WORKLOAD_CAPTURE.TYPE_HTML,
                           result => :report_bind);
END;
/

この例のCOMPARE_PERIOD_REPORTプロシージャは、リプレイID 12のワークロード・リプレイをID 17の別のリプレイと比較する、HTML形式のリプレイの期間比較レポートを生成します。

この例のCOMPARE_PERIOD_REPORTプロシージャでは、次のパラメータを使用します。

  • replay_id1: レポートの生成対象となる変更後のワークロード・リプレイの数値IDを指定するパラメータ。このパラメータは必須です。

  • replay_id2: レポートの生成対象となる変更前のワークロード・リプレイの数値IDを指定するパラメータ。このパラメータを指定しない場合、ワークロードの取得との比較が実行されます。

  • format: レポートの形式を指定するパラメータ。有効な値は、DBMS_WORKLOAD_CAPTURE.TYPE_HTML(HTMLの場合)と、DBMS_WORKLOAD_CAPTURE.TYPE_XML(XMLの場合)などです。このパラメータは必須です。

  • result: レポートの出力を指定するパラメータ。

関連項目:

リプレイの期間比較レポートの確認

リプレイの期間比較レポートを確認することで、リプレイの相違が発生しているか、および大幅なパフォーマンスの変化があったかを判断できます。

行った比較の種類に応じて、次の3つのいずれかのリプレイの期間比較レポートが生成されます。

  • 取得とリプレイ

    このレポート・タイプでは、ワークロード・リプレイのパフォーマンスを取得済ワークロード比較します。

  • リプレイとリプレイ

    このレポート・タイプでは、同一のワークロード取得の2つのワークロード・リプレイのパフォーマンスを比較します。

  • 統合リプレイ

    このレポート・タイプでは、複数のワークロード取得のパフォーマンスを統合リプレイと比較します。このレポート・タイプには、ASH Data Comparisonセクションしかありません。このレポート・タイプの詳細は、「データベース統合リプレイのレポート作成および分析」を参照してください。

どのタイプのリプレイの期間比較レポートにも、比較対象の2回の実行の最も重要な変更についての情報が含まれます。この情報を使用すると、実行する適切なアクションを決定できます。たとえば、新しい同時実行の問題が検出された場合、自動データベース診断モニター(ADDM)レポートを確認して問題を診断します。SQLのパフォーマンスに関する新しい問題が検出された場合、SQLチューニング・アドバイザを実行し問題を修正します。

リプレイの期間比較レポート内の情報は、次のセクションに分類できます。

一般情報
このセクションには、レポートで比較される2つの実行に関するメタデータが含まれています。2つの実行間でのinit.oraパラメータの変更もここに示されます。テストしたシステムの変更が実行されたかどうか確認するには、このセクションを参照してください。
リプレイの相違

このセクションには、最初の実行と比較した2番目の実行の相違分析が示されます。分析に大幅な相違がある場合、相違の完全なレポートを確認します。

メイン・パフォーマンス統計
このセクションには、2つの実行間の高度なパフォーマンス統計比較(データベース時間の変化など)が示されます。比較でデータベース時間に大きな違いがない場合、2回の実行間のパフォーマンスは通常類似しています。データベース時間に大幅な違いがある場合、統計を確認し、この大きな違いの原因となっているコンポーネント(CPUまたはユーザーI/O)を特定します。
上位SQL/コール
このセクションでは、個々のSQL文の1回の実行と次の実行におけるパフォーマンス変化を比較します。SQL文は、データベース時間の合計変化の順に並べられます。データベース時間が最も低下した上位のSQL文は、SQLチューニングを行う最有力の対象となります。
ハードウェア使用率の比較

このセクションでは、2回の実行におけるCPUとI/O使用量を比較します。すべてのインスタンスのCPU数値が合計され、インスタンス間のCPUの使用量の平均が算出されます。

データ・ファイルおよび一時ファイルのI/O統計が示されます。1ブロックの読取り時間が高い値である場合(10ミリ秒を大幅に超える場合)、システムがI/Oバウンドであることが示唆されます。この場合、読み書きの合計時間を確認し、遅延の原因がI/Oリクエストが多いためまたはI/Oスループットが悪いためでないか判断します。

ADDMの比較
このセクションでは、2回の実行のADDM分析の比較を影響の絶対差分順に示しています。2回の実行のADDM結果を比較し、1回の実行のみに存在していた可能性のある問題を特定できます。データベースのパフォーマンスを向上させるためにシステム変更をテストした場合、期待していた向上がADDMの結果にあったかを確認できます。

関連項目:

ASHデータ比較
このセクションでは、2回の実行のASHデータを比較します。表には、比較期間の開始時間および終了時間が示されます。これらの時間は、比較している2回の実行の取得およびリプレイ時間とは一致しない場合があります。かわりに、これらの時間はASHサンプルが取得された時間を示します。

ASH Data Comparisonセクションには、次のサブセクションが含まれます。

サマリーの比較
このセクションには、データベース時間および待機時間の内訳に基づく2回の実行のアクティビティの要約があります。たとえば:
  • データベース時間の内訳は、データベース時間に対するCPU使用量、待機時間、I/Oリクエストの内訳を示します。

    図13-1に、サンプル・レポートのデータベース時間の内訳サブセクションを示します。

    図13-1 データベース時間の内訳

    図13-1の説明が続きます
    「図13-1 データベース時間の内訳」の説明
  • 待機時間の内訳は、待機イベントに対する合計待機時間の内訳を示します。2回の実行の上位の待機イベント・クラス、イベント名、イベント数が示されます。

    図13-2に、サンプル・レポートの待機時間の内訳サブセクションを示します。

    図13-2 待機時間の内訳

    図13-2の説明が続きます
    「図13-2 待機時間の内訳」の説明
上位SQL

このセクションでは、2回の実行でデータベース時間、CPU時間、待機時間の合計が上位のSQL文を示します。

長時間実行されているSQL

このセクションでは、2回の実行において実行時間が長い上位のSQL文を示します。長時間実行されるSQL文ごとに、最大、最小および平均応答時間などの問合せの詳細が記載されています。

共通のSQL

このセクションでは、2回の実行に共通するSQL文を抽出し、平均応答時間およびデータベース時間の合計の変化における上位共通のSQL文を示します。

上位オブジェクト

このセクションには、2回の実行で待機時間の合計が上位のオブジェクトの詳細を示します。

図13-3に、サンプル・レポートの「上位オブジェクト」セクションを示します。

図13-3 上位オブジェクト

図13-3の説明が続きます
「図13-3 上位オブジェクト」の説明

SQLパフォーマンス・アナライザ・レポートの使用

SQLパフォーマンス・アナライザ・レポートは、ワークロード・リプレイのSQLチューニング・セットを、ワークロード取得の別のSQLチューニング・セットと、または2つのワークロード取得の2つのSQLチューニング・セットと比較する場合に使用します。

SQLパフォーマンス・アナライザのテスト実行では、各SQL試行のSQL文ごとに1つの実行計画のみを生成するのに対し、SQLチューニング・セットをデータベース・リプレイと比較すると、各SQL文のすべての実行計画が考慮されて示されるため、SQLパフォーマンス・アナライザのテスト実行よりも詳しい情報が得られます。

APIを使用したSQLパフォーマンス・アナライザ・レポートの生成

この項では、DBMS_WORKLOAD_REPLAYパッケージを使用してSQLパフォーマンス・アナライザ・レポートを生成する方法について説明します。

SQLパフォーマンス・アナライザ・レポートを生成するには、DBMS_WORKLOAD_REPLAY.COMPARE_SQLSET_REPORTプロシージャを使用します。

BEGIN
  DBMS_WORKLOAD_REPLAY.COMPARE_SQLSET_REPORT (
                           replay_id1 => 12,
                           replay_id2 => 17,
                           format => DBMS_WORKLOAD_CAPTURE.TYPE_HTML,
                           result => :report_bind);
END;
/

この例のCOMPARE_SQLSET_REPORTプロシージャは、リプレイIDが12のワークロード・リプレイ時に取得されたSQLチューニング・セットを、リプレイIDが17のワークロード・リプレイ時に取得されたSQLチューニング・セットと比較する、HTML形式のSQLパフォーマンス・アナライザ・レポートを生成します。

この例のCOMPARE_SQLSET_REPORTプロシージャでは、次のパラメータを使用します。

  • replay_id1: レポートの生成対象となる変更後のワークロード・リプレイの数値IDを指定するパラメータ。このパラメータは必須です。

  • replay_id2: レポートの生成対象となる変更後のワークロード・リプレイの数値IDを指定するパラメータ。このパラメータを指定しない場合、ワークロードの取得との比較が実行されます。

  • format: レポートの形式を指定するパラメータ。有効な値は、DBMS_WORKLOAD_CAPTURE.TYPE_HTML(HTMLの場合)、DBMS_WORKLOAD_CAPTURE.TYPE_XML(XMLの場合)およびDBMS_WORKLOAD_CAPTURE.TYPE_TEXT(テキストの場合)です。このパラメータは必須です。

  • result: レポートの出力を指定するパラメータ。

関連項目: