17 ワークロード分析の使用

ワークロード分析は、低下または改善の理由を特定、定量化および解消するのに役立ちます。この章のトピックは、次のとおりです:

データベース・パフォーマンスが低下する一般的な理由は、問合せ計画の変更、データ量の増加またはデータベースでのアクティビティの増加によって発生する、パフォーマンスが低下したSQL文です。

ワークロード分析では、同じまたは類似の2つの異なる時点から、データベース内の上位問合せの分析が実行されます。パフォーマンスが低下した文は、SQLチューニング・アドバイザまたはSQL計画ベースラインを使用してチューニングできます。

Enterprise Managerでのワークロード分析へのアクセス

Oracle Enterprise Manager Cloud Controlのワークロード分析には、2つの方法を使用してアクセスします。

方法1:
  1. 「ターゲット」ドロップダウン・リストをクリックします。
  2. 「データベース」を選択します。
  3. 「名前」列で、データベース名を選択します。たとえば、rep_databaseです。
  4. 「パフォーマンス」ドロップダウン・リストから、「ワークロード分析」を選択します。
  5. 「データベース・ログイン」画面で、「指定」または「新規」の資格証明を選択し、「ログイン」をクリックしてワークロード分析にアクセスします。
方法2:
  1. 「ターゲット」ドロップダウン・リストをクリックします。
  2. 「データベース」を展開し、「データベース・インスタンス」をクリックします。
  3. 「ターゲット名」列で、データベース名をクリックします。たとえば、rep_databaseです。
  4. 「パフォーマンス」ドロップダウン・リストから、「ワークロード分析」を選択します。
  5. 「データベース・ログイン」画面で、「指定」または「新規」の資格証明を選択し、「ログイン」をクリックしてワークロード分析にアクセスします。

Oracle Databaseでのワークロード分析のサポート

ワークロード分析は、Oracle Database 19c以降でサポートされています。

  • ワークロード分析は、単一インスタンスのOracle Database、コンテナ・データベース(CDB)およびOracle RACデータベースでサポートされています。
  • ワークロード分析は、Autonomous Databasesではサポートされていません。
  • CDBの場合、ワークロード分析はCDB$ROOTではサポートされていません。
  • 「ワークロード分析」メニューおよびタイルは、CDB$ROOTでは表示されません。
  • ワークロード分析では、CDBおよびプラガブル・データベース(PDB)がサポートされていますが、CDB$ROOTはサポートされていません。
  • ワークロード分析は、Oracle RACコンテナおよびRAC PDBではサポートされています。ただし、ワークロード分析はOracle RACインスタンスではサポートされていません。
  • 「ワークロード分析」メニューおよびタイルは、Oracle RACインスタンスでは表示されません。

ワークロード分析の概要

ワークロード分析では、データベース上位SQL文のほぼリアルタイムの分析が提供され、履歴実行統計を使用して、変更されたパフォーマンスおよび変更されたパフォーマンスの理由が識別されます。

ワークロードとは、データベースまたはPDBで実行するSQL文のセットのことです。フィルタを使用してアプリケーション内の特定のアプリケーションまたはモジュールに制限することも、完全なデータベースまたはPDBにまたがることもできます。統計および実行計画を含むこれらの文は、SQLチューニング・セット(STS)に格納されます。自動ワークロード・リポジトリ(AWR)からSTSを収集する場合、dbms_workload_repository.modify_snapshot_settings(topnsql =>[number])で変更できる上位N個の文に制限されます。

ワークロード分析機能では、本番データベース内の異なる時点の2つのSQLチューニング・セットが比較され、これは変更前後のテスト・データベース内の1つのSQLチューニング・セットのみを分析するSQLパフォーマンス・アナライザと比較されます。特定の基準に基づいて、またはデータベースの上位文に基づいて、2つのSQLチューニング・セットを比較できます。

SQLパフォーマンス・アナライザはデータベース・レベルでのパフォーマンス・データの分析に役立ちますが、ワークロード分析はアプリケーション・レベルでのパフォーマンス・データの分析に役立ちます。

参照ワークロードを使用している場合は、ワークロード分析を使用したパフォーマンス・データの分析を開始する前に、ワークロードのSQLチューニング・セットを作成します。

現在使用可能なワークロード分析オプションは2種類あります。

  • 自動分析
  • 1回かぎりの分析
「データベース・ホームページ」にある「ワークロード分析」タイル内に、自動分析と1回かぎりの分析の両方について、タスクを表示するオプションがあります。

自動分析の使用

自動分析では、データベース管理者が構成したスケジュールに基づいて自動実行されるレポートが生成されます。

自動分析について

自動分析を使用すると、2つのSQLチューニング・セットを比較するタスクを作成できます。これは、毎時、毎日、毎週、毎月などのスケジュールで自動的に実行されます。

自動分析タスクの作成

ワークロード取得の詳細、ワークロード比較の詳細を指定し、タスクの日時をスケジュールすることで、自動分析タスクを作成します。

自動分析タスクのオプションは次のとおりです:

  • 「基本」自動分析タスク
  • 「拡張」自動分析タスク。
基本自動分析タスクの作成

ワークロード取得の詳細を指定することで、基本自動分析タスクを作成します。

  1. Enterprise Managerのデータベース・メイン・ページに移動します。
  2. 「パフォーマンス」ドロップダウン・リストから、「ワークロード分析」を選択します。
  3. 自動分析タブを選択します。
  4. 分析タスクの作成をクリックしてワークロードの自動分析タスクを作成します。
  5. 「タスクの説明」に、自動分析タスクの名前と簡単な説明を入力します。このタスクを「データベース・ホームページ」のタイルに表示する場合は、ホームページで表示トグルを選択します。
  6. タスク作成タイプの選択オプションから、「基本」を選択します。
  7. タスク・パラメータセクションにあるワークロードの取得間隔(時間)ドロップダウン・リストで、1から24までの任意の数を選択することでタスクをスケジュールします。
  8. 「発行」をクリックします。ワークロード分析が完了すると、その基本分析タスクが「結果」タブに表示されます。

たとえば、ワークロードの取得間隔(時間)ドロップダウン・リストから4時間を選択すると、ワークロード分析タスクによって、過去4時間に作成された自動ワークロード・リポジトリ(AWR)スナップショットからSQLチューニング・セットが作成され、このSQLチューニング・セットと、その前の4時間に作成されたSQLチューニング・セットが比較されます。

これにより、午前6時から午前10時の時間間隔のSQLチューニング・セットと、午前2時から午前6時の時間間隔で作成されたSQLチューニング・セットが比較されます。このタスクは4時間ごとに実行されて、比較のためのSQLチューニング・セットが作成されます。

拡張自動分析タスクの作成

ワークロード取得の詳細、ワークロード比較の詳細を指定し、タスクの日時をスケジュールすることで、拡張自動分析タスクを作成します。

  1. Enterprise Managerのデータベース・メイン・ページに移動します。
  2. 「パフォーマンス」ドロップダウン・リストから、「ワークロード分析」を選択します。
  3. 自動分析ページを選択します。
  4. 分析タスクの作成をクリックしてワークロードの自動分析タスクを作成します。
  5. 「タスクの説明」に、自動分析タスクの名前と簡単な説明を入力します。このタスクを「データベース・ホームページ」のタイルに表示する場合は、ホームページで表示トグルを選択します。
  6. タスク作成タイプの選択オプションから、「拡張」を選択します。
  7. 次のセクションの情報を入力します:

ワークロードの取得

「ワークロードの取得」セクションで、SQLチューニング・セットに関する情報を入力し、自動ワークロード・リポジトリ(AWR)スナップショットから取得したSQL文をロードします。

  • SQLチューニング・セット名の接頭辞: SQLチューニング・セット名の前に付ける接頭辞を指定します。
  • 自動ワークロード・リポジトリ(AWR)スナップショットを使用したSQL文のロード
    • カスタム時間範囲の指定: 時間範囲を指定してAWRスナップショットを取得し、これを新しいSQLチューニング・セットの作成時にSQL文のロードに使用できます。
      • 開始時間: AWRからAWRスナップショットを取得する開始時間を指定します。
      • 終了時間: AWRからAWRスナップショットを取得する終了時間を指定します。
    • 過去に作成されたスナップショットからのクイック選択: 時間数または日数を指定することで、過去に取得されたAWRスナップショットをドロップダウン・リストからすばやく選択できます。
  • 取得されたSQL文の合計数: AWRから使用可能な、上位のSQL文。
    • すべて取得: すべてのSQL文を取得するには、このオプションを選択します。
    • 上位Nの取得: 上位10個または上位20個のSQL文など、指定した数のSQL文を取得するには、このオプションを選択します。
    • フィルタ・オプション: 演算子を使用して、解析スキーム名、SQLテキスト、SQL IDまたはモジュールのフィルタを追加できます。

ワークロードの比較

「ワークロードの比較」には、次のオプションがあります:

  • 後続の比較
    • ローリング参照を使用した比較: 取得したワークロードを以前に取得したワークロードとローリング・ベースで比較できます。例: 前日のワークロードに対する今日のワークロード。
    • 固定参照を使用した比較: 固定参照は、特定の時点に取得される静的SQLチューニング・セットです。たとえば、比較の描画時に、1月1日以降、時間AとBの間で常にこの参照SQLチューニング・セットを使用して比較します。
  • オプションの初期参照ワークロード

    他のワークロードを比較するための初期参照ワークロードとして使用できるSQLチューニング・セットを指定します。この値はオプションです。

    • 比較メトリック:「経過時間」を使用してパフォーマンス・メトリックを比較します。複数の比較メトリック(「CPU時間」、「バッファ読取り」、「ディスク読取り」、「物理I/O」、「ダイレクト書込み」および「オプティマイザ・コスト」など)を追加できます。
    • しきい値の変更: ここでは最小しきい値が必要です。
    • コンシューマ参照グループ: タスクを特定のリソース・グループに割り当てることができます
    • 保存ポリシー(日)*:優先する時間範囲を選択することで、パージされた実行を保持できます。保存ポリシーより古い分析結果は削除されます。
  • スケジュール

    タスクの実行時間をスケジュールするには、特定の時間範囲とタイムゾーンを指定します。

    • 開始日: タスクを実行する開始日を指定します。
      • 即時: タスクをすぐに実行するには、このオプションを選択します。
      • 後で: 指定した日付にタスクを実行するには、このオプションを選択します。
    • 終了日: タスクを実行する終了日を指定します。
      • なし: 特定の日付にタスクを終了しない場合は、このオプションを選択します。
      • 指定した日付: 特定の日付にタスクを終了するには、このオプションを選択します。
    • 繰返し間隔: 毎時、日次、週次、月次などの時間プリファレンスに基づいてスケジュールを繰り返すには、このドロップダウン・オプションを選択します。

    「発行」をクリックします。ワークロード分析が完了すると、その拡張分析タスクが「結果」タブに表示されます。

自動分析タスクの結果の確認

「結果」タブを使用して、結果を表示し、データベース・ワークロード用に作成したタスクを分析します。

表17-1 自動分析タスクの結果

項目 説明
分析

SQLチューニング・セットのパフォーマンス分析および比較レポートを提供します。比較レポートを表示するには、レポート対象の分析タスクを展開し、ワークロード分析レポートをクリックします。自動化されたワークロードに低下や改善があるたびに、レポートが生成されます。

説明 SQLチューニング・セットで取得されたワークロードの説明。
参照ワークロード 既存または以前のSQLチューニング・セットのワークロード。参照ワークロードをクリックして、SQLチューニング・セットの詳細を取得します。
分析ワークロード 既存のSQLチューニング・セットのパフォーマンスを別のSQLチューニング・セットと比較します。分析ワークロードをクリックして、SQLチューニング・セットの詳細を取得します。
最終更新日 タスクが最後に更新された日付。
作成者 タスクを作成したユーザー。たとえば、SYS、SYSTEMまたはSYMANです。
メトリック比較 デフォルトでは、他のパフォーマンス・メトリックの比較に「経過時間」パフォーマンス・メトリックが使用されます。パフォーマンス・メトリック(「CPU時間」、「バッファ読取り」、「ディスク読取り」、「物理I/O」、「ダイレクト書込み」および「オプティマイザ・コスト」など)の比較に基づいて、タスクが「低下」、「改善」または「変化なし」であったかどうかステータスが表示されます。
欠落したSQL 参照ワークロードの一部であったが、比較済ワークロードに存在しなくなったSQL文の数。
新規SQL 現在の参照期間中ではなく、別の参照期間中に頻繁に実行されているSQL文の数。
前の結果 参照ワークロードの名前、比較済ワークロード、その他のメトリック比較など、タスクの以前の結果に関するレポートを表示します。

自動分析タスクのリスト

「分析タスク」タブには、次の列が表示され、作成したすべての自動分析タスクがリストされます。

表17-2 分析タスクのリスト

項目 説明
タスク タスクの名前。
説明 タスクの説明。
作成者 タスクを作成したユーザー。たとえば、SYS、SYSTEMまたはSYSMANです。
最終実行日 タスクが最後に実行された日付。
次回実行日 タスクが次回自動実行される日付。
状態 タスクのステータス(スケジュールされているかどうか)。ステータスをクリックすると自動ジョブの詳細が示されます。
有効 タスクが有効かどうか。
前の実行 以前に実行されたタスク。タスク番号をクリックして、作成者、開始日、完了日、経過時間、現在のステータスなどのタスクに関する情報を取得します。
垂直ドット・メニュー タスクの実行を有効化、無効化、削除または停止するには、垂直ドット・メニューをクリックします。データベース・ホームページに自動分析タスクを表示するには、ホームページで表示をクリックします。

ワークロードおよびメトリックのサマリーの確認

自動分析には、作成した分析タスクのワークロードおよびメトリックの概要を示す一連のパネルが用意されています。

  • 変更されたワークロード: 変更されたワークロードの数。
  • 監視対象のワークロード: 監視対象のワークロードの数。
  • 低下したメトリック: パフォーマンスが改善および低下したメトリックは比較に基づいています。1つのSQLチューニング・セットに複数の比較を含めることができます。
  • 改善されたメトリック: 改善されたSQLチューニング・セットの数。
  • 未変更のメトリック: 変更されていないSQLチューニング・セットの数。

「ワークロード分析」ページの右上にある「データの表示」ドロップダウン・リストからオプションを選択して、任意の時間について、または時間制限なしで、ワークロード分析データを表示することもできます。

1回かぎりの分析の使用

1回かぎりの分析ページを使用して、2つの類似したワークロードのパフォーマンス特性を比較するのに役立つ1回かぎりの分析タスクを作成します。たとえば、データベースのアップグレードまたはパッチ適用の前後にSQLチューニング・セットのパフォーマンスを測定する場合です。

1回かぎりの分析について

1回かぎりの分析では、2つのワークロードの比較が実行されます。この分析を実行して、アプリケーションのアップグレードなどの既知の変更後のパフォーマンスを検証できます。

1回かぎりの分析タスクの作成

ワークロード定義および比較の詳細を指定して、ワークロードの1回かぎりの分析用の分析タスクを作成します。

  1. Enterprise Managerのデータベース・メイン・ページに移動します。
  2. 「パフォーマンス」ドロップダウン・リストから、「ワークロード分析」を選択します。
  3. 1回かぎりの分析ページを選択します。
  4. 1回かぎりの分析タスクの作成をクリックして、1回かぎりの分析タスクを作成するか、ワークロードの分析タスクをスケジュールします。
  5. 1回かぎりの分析タスクの作成ウィンドウで、次のセクションの情報を入力します:

ワークロード

ワークロードは、特定の期間に取得されたSQLチューニング・セットであり、フィルタされたSQL文とデータ操作言語(DML)文のセットを含んでいます。

一般オプション

1回かぎりの分析用に作成できる様々なタスクで使用可能なオプションです。

  • 名前: スケジュール済タスクの名前を入力します。
  • 説明: スケジュール済タスクの簡単な説明を入力します。

ワークロードの比較

様々なSQLチューニング・セットのパフォーマンスを比較するための情報を入力します。

  • 参照ワークロード: 参照ポイントとして設定するSQLチューニング・セットを検索して入力します。
  • 比較済ワークロード: 既存のSQLチューニング・セットのパフォーマンスを別のSQLチューニング・セットと比較できるように、ワークロードを検索して入力します。
  • 比較メトリック: 比較レポートの生成時に使用する値を入力します。複数のメトリックを選択すると、各メトリックによって、経過時間、CPU時間、バッファ読取り、ディスク読取り、物理I/O、ダイレクト書込み、オプティマイザ・コストなどのメトリックに基づいて圧縮レポートが生成されます。
  • しきい値の変更: 文のパフォーマンスが低下したとみなされた場合のしきい値を%で入力します。

1回かぎりの分析タスクの結果の確認

1回かぎりの分析ページには、作成したすべての1回かぎりの分析ワークロード・タスクの結果が表示されます。次の情報がリストされます。

表17-3 1回かぎりの分析タスクの結果

項目 説明
分析

SQLチューニング・セットの1回かぎりのパフォーマンス分析および比較レポートを提供します。比較レポートを表示するには、レポート対象の分析タスクを展開し、ワークロード分析レポートをクリックします。スケジュールされたワークロードが低下または改善するたびに、レポートが生成されます。

説明 SQLチューニング・セットで取得されたワークロードのタスクの説明。
参照ワークロード 既存または以前のSQLチューニング・セットのワークロード。参照ワークロードをクリックして、SQLチューニング・セットの詳細を取得します。
比較済ワークロード 既存のSQLチューニング・セットのパフォーマンスを別のSQLチューニング・セットと比較します。比較済ワークロードをクリックして、SQLチューニング・セットの詳細を取得します。
最終更新日 タスクが最後に更新された日付。
作成者 タスクを作成したユーザー。たとえば、SYS、SYSTEMまたはSYMANです。
削除 1回かぎりのタスクを削除するオプションです。
メトリック比較 経過時間、CPU時間、バッファ読取り、ディスク読取り、物理I/O、ダイレクト書込み、オプティマイザ・コストなどのパフォーマンス・メトリックの比較に基づいて、タスクが「低下」、「改善」または「変更なし」の場合にステータスが表示されます。
欠落したSQL 参照ワークロードの一部であったが、比較済ワークロードに存在しなくなったSQL文の数。
新規SQL 比較済ワークロードにはあったが参照ワークロードにはなかったSQL文の数。
状態 完了または実行中のタスクの現在のステータス。

分析およびメトリックのサマリーの確認

1回かぎりの分析には、作成した分析タスクの簡単な分析およびメトリックを示す一連のパネルが用意されています。

  • 差異のある分析: 差異がある1回かぎりの分析タスクの数が表示されます。
  • 合計分析: 1回かぎりの分析タスクの合計数が表示されます。
  • 低下したメトリック: パフォーマンスが改善および低下したメトリックは比較に基づいています。自動ワークロード分析タスクには、複数の比較を含めることができます。
  • 改善されたメトリック: 改善されるSQLチューニング・セットの数。
  • 未変更のメトリック: 変更されていないSQLチューニング・セットの数。

データベース・ページの右上にある「データの表示」ドロップダウン・リストからオプションを選択して、最後の24時間、1週間、30日間またはこれらの組合せのワークロード分析データを表示することもできます。

データベース・ホームページでの自動ワークロード分析タスクの確認

ワークロード分析ページで特定のワークロード分析タスクを選択することで、データベース・ホームページで1つの自動ワークロード分析タスクのみを確認できます。

ホームページでのタスクの追加または削除

2つの方法を使用して、データベース・ホームページで自動分析タスクを追加または削除できます。

方法1:
  1. Enterprise Managerのデータベース・メイン・ページに移動します。
  2. 「パフォーマンス」ドロップダウン・リストから、「ワークロード分析」を選択します。
  3. 自動分析タブを選択します。
  4. 分析タスクの作成をクリックしてワークロードの自動分析タスクを作成します。
  5. 「タスク定義」セクションで、自動分析タスクの名前と説明を入力します。
  6. ホームページで表示をクリックしてデータベース・ホームページに自動分析タスクを表示します。タスクの横にホーム・アイコンが表示されて、そのタスクがデータベース・ホームページに表示されていることが示されます。
  7. 「送信」をクリックして、ワークロードの自動分析タスクを追加します。
方法2:
  1. 「ワークロード分析」ホームページで、「分析タスク」タブを選択します。
  2. 「分析タスク」タブから、データベース・ホームページに表示するタスクを選択します。
  3. 垂直ドット・メニューからホームページで表示を選択して、選択したタスクをデータベース・ホームページに表示します。そのタスクがデータベース・ホームページに表示されます。
  4. タスクのリストで、データベース・ホームページから削除するタスクを選択します。
  5. 垂直ドット・メニューでホームページから削除を選択して、選択したタスクをデータベース・ホームページから削除します。

ノート:

このタスクがデータベース・ホームページに表示されるまでにいくらか時間がかかります。

自動ワークロード分析タスクへのアクセス

データベース・ホームページで自動ワークロード分析タスクを表示できます。

  1. データベース・ホームページに移動します。
  2. 「ワークロード分析」タイルをクリックして、レポートが必要なワークロード分析メトリックの横にあるワークロード分析タスクにアクセスします。

ノート:

複数のEMで同じデータベースを管理している場合はこの機能は正しく動作しないため、複数のEMを同じデータベースにマップしないでください。

自動ワークロード分析タスクの確認

自動または1回かぎりのワークロード分析では、SQLチューニング・セットのパフォーマンス分析およびワークロード分析レポートが必ず生成されます。

表17-4 自動ワークロード分析タスク

項目 説明
タスク

タスクの名前。

説明 SQLチューニング・セットで取得されたワークロードの説明。
参照期間 これは、SQLチューニング・セットを取得する2つの時点の間の期間です。これは、分析期間との比較に使用されます。
分析期間 SQLチューニング・セットを取得する時間間隔。
サマリー 「ワークロード分析」ホームページ内の分析タスクにおいて選択した比較メトリックに対するワークロードの影響のサマリーが表示されます。
SQLの共通点 0%から100%までの範囲での、参照期間と分析期間からのSQL文に基づいた、両期間の間の類似性の程度。
全体的なパフォーマンスの変化 選択した比較メトリックについて全体的な改善と低下をパーセンテージで表示します。
ワークロードの影響 SQL文のカテゴリからの全体的なパフォーマンス低下への寄与率。
共通のSQL 両方の実行に共通するSQL文の数。平均応答時間と合計データベース時間の変化を基準にして上位の共通SQL文を表示します。
改善されたSQL パフォーマンスが向上したSQL文の数。
低下したSQL パフォーマンスが低下したSQL文の数。
欠落したSQL 参照ワークロードの一部であったが、比較済ワークロードに存在しなくなったSQL文の数。
新規SQL 比較済ワークロードにはあったが参照ワークロードにはなかったSQL文の数。
経過時間 「経過時間」は、すべての文のすべての実行についての合計秒数です。
SQL文(パフォーマンス別) パフォーマンスに基づいた、参照期間と分析期間の両方に共通する各グループのSQL文の数。
SQL文(計画変更別) 計画変更に基づいた、参照期間と分析期間の両方に共通するSQL文の数。
すべての結果を表示 データベース・ホームページに自動ワークロード分析の結果をすべて表示します。

ワークロード分析レポートの確認

自動または1回かぎりのワークロード分析では、SQLチューニング・セットのパフォーマンス分析およびワークロード分析レポートが必ず生成されます。

このレポートで、ワークロード分析メトリック、SQL文のパフォーマンス・ブレークダウン、ワークロードの影響を受ける上位SQL文などのデータを確認します。

また、「タスク名」、参照ワークロード、比較済ワークロード、「実行名」、参照ワークロード所有者、比較済ワークロード所有者、参照SQL分析済、比較済SQL分析済などのページの上部にある情報を確認します。

ワークロード分析レポートへのアクセス

ワークロード分析タスクのワークロード分析レポートを表示できます。

  1. 「ワークロード分析」ホームページで、レポート対象の分析タスクを展開します。
  2. レポートが必要なワークロード分析メトリックの横にあるワークロード分析レポートリンクをクリックします。
  3. ワークロード分析レポートページにワークロード分析メトリックが表示されます。
  4. 「レポートの保存」をクリックしてワークロード分析レポートをダウンロードします。

サマリー・レポートの確認

「サマリー」パネルには、「ワークロード分析」ホームページの分析タスクで選択した比較メトリックに対するワークロードの影響のサマリーが表示されます。

UIに、次のメトリックについてワークロード分析レポートが表示されます:

  • ダイレクト書込み: ダイレクト書込みにより、セッションではI/O書込みリクエストをキューに入れ、オペレーティング・システムがI/Oを処理している間に処理を続行できます。
  • 物理I/O: SQL文の実行時のダイレクト書込みとディスク読取りの合計。
  • ディスク読取り: 物理ディスク読取りの合計量(ディスク読取りは、そのデータがメモリー内にない場合のみ実行されます)。
  • バッファ取得: このSQL文のバッファ読取りの合計数(データベースがブロックにアクセスした回数)です。
  • オプティマイザ・コスト: 実行計画についてオプティマイザによって計算されたコスト。
  • 経過時間: SQL文の経過秒数です。
  • CPU時間: SQL文のCPU時間の合計。

例: ワークロード分析レポート

ワークロード分析レポートは、2つのSQLチューニング・セットを比較するレポートで、2つの実行期間の間の異常を識別できるように差異を強調表示します。

ワークロード分析レポートの概要

2つの異なるSQLチューニング・セットを取得する場合は常に違いがあり、これらの違いが異常かどうかを解釈して理解する必要があります。

たとえば、分析されたワークロードが同じであるとします。先週月曜日の午前9時から午前10時の間にSQLチューニング・セットを取得し、これを月曜日の午前9時から午前10時の間に実行されたワークロードと比較しました。ワークロードは自動ワークロード・リポジトリ(AWR)から取得されたSQLチューニング・セットであるため、カテゴリごとに上位N個の文のみが含まれます。経過時間などのパフォーマンス・メトリックに寄与する文です。ただし、新しい文が上位のコントリビュータになることはありません。

図17-1 WLAレポートの概要



上部セクションには、比較されるワークロードの名前と、各ワークロードで取得されるSQL文の数に関する情報が表示されます。この例では、参照ワークロードに70個の文、比較済ワークロードに75個の文があります。

これは、比較期間のAWRにさらに文があることを示します。これは、参照ワークロードの様々なカテゴリの文が比較済ワークロードよりも調整されているか、AWRスナップショットに多くの文を含めるように変更されていることを意味する場合があります。

ワークロードの影響別の上位SQL文の数について、基準を次に示します:

  • 経過時間によるSQLのソート
  • CPU時間によるSQLのソート
  • ユーザーI/O待機時間によるSQLのソート
  • 取得によるSQLのソート
  • 読取りによるSQLのソート
  • 物理読取り(最適化なし)によるSQLのソート
  • 実行によるSQLのソート
  • 解析コールによるSQLのソート
  • 共有可能メモリーによるSQLのソート
  • バージョン・カウントによるSQLのソート

AWRでは、基準ごとに上位N個のSQLが保持されます。どれも重複しない場合は、30個の文* 10個の基準 = 300個の文となります。つまり、300個ではなく、150個程度になる場合があります。しかし、これは変動する可能性があります。170個から130個までの範囲での変動などです。この差分は増える可能性も減る可能性もあり、重複に左右されます。

「サマリー」セクション

この例では、レポートは経過時間比較メトリックで生成されます。22.3%の全体的な低下を確認できます。

図17-2 「サマリー」セクション



低下は様々なカテゴリに分かれています:

共通のSQL: これらの文は両方の期間に実行されています。

改善されたSQL: 参照ワークロードよりも合計経過時間が短いすべての文に関する、改善の合計。

低下: 参照ワークロードよりも合計経過時間が長いすべての文に関する、低下の合計。

欠落したSQL: これは、比較済ワークロードで取得されていないすべての文に関する、改善の合計です。統計が収集されていない場合、その統計は経過時間に影響しません。これらの文は、AWRの上位N個の文として他の文に置き換えることも、アプリケーションのアップグレードや同様のアクティビティによる文に置き換えることもできます。

新規SQL: これは、参照ワークロードではなく、比較済ワークロードで取得されたすべての新規文に関する、影響の合計です。新しい文の理由は、欠落している文の場合と同じです。

この例では、欠落している文および新規の文が合計ワークロードの約50%を占めています。

ブレークダウン

「ブレークダウン」セクションの情報は、常に「サマリー」セクションのデータと相関しています。経過時間を10%増やす場合は、経過時間の合計などのその他の状況を把握することが重要です。

図17-3 「ブレークダウン」セクション



この例では、合計経過時間は約24秒です。したがって、ワークロードが1時間取得された場合に比較を実行する実際の値はありません。ただし、経過時間が約15000秒の場合、10%増加するとアプリケーションのパフォーマンスに影響する可能性があります。

経過時間

「経過時間」タイルには、その期間内に取得されたすべての文の実行の合計経過時間が表示されます。このタイルのラベルは、選択した比較メトリックを反映するように変更されます。

SQL文(パフォーマンス別)

このタイルには、各グループの文の数が表示されます。このデータを「サマリー」セクションで使用可能なデータに関連付けることが重要です。この例では、欠落している文は文の合計数の12%ですが、合計経過時間のほぼ45%に寄与します。また、新しい文についても同様で、これはすべての文の19%になりますが、経過時間の54%に寄与します。

このユースケースでは、これらは経過時間に対する高いコントリビュータであり、説明なく消えることも表示されることもありません。

SQL文(計画変更別)

これは、SQL詳細を分析する必要がある重要なセクションです。新しい計画でパフォーマンスの改善が示されている場合は、1つの実行が高速か低速かを判断する必要があります。実行速度が遅い場合は、パフォーマンスの低下が発生しています。ただし、実行回数が少ないため、経過時間が短くなり、さらに調査する必要があります。パフォーマンスの低下を示している場合は、1回の実行の経過時間が長くなっているかどうかを調査する必要があります。ただし、1回の実行の経過時間が短い場合、それ以上の調査は必要ありません。

ワークロードへの影響別上位SQL文

このタイルでは、特定のカテゴリのSQL文のみを表示する様々なフィルタを追加できます。デフォルトでは、このタイルにはパフォーマンス変更済SQLが表示されますが、すべて表示、低下のみ表示、その他いくつかのカテゴリを表示することもできます。

図17-4 ワークロード別上位SQL文



カテゴリを変更するには、ドロップダウン・リストからカテゴリを選択します。この例では、パフォーマンスが変更された3つのSQL文を確認できます。SQL文がパフォーマンス変更としてリストされるため、これが事前定義された影響のしきい値であることに注意してください。デフォルトのしきい値は3%で、ワークロードへの影響またはSQL文への影響のいずれかに適用されます。各SQL文の詳細を表示するには、SQL IDをクリックします。

SQLの詳細

SQLの詳細は、3つの異なるタイルに分割され、「分析」タイルと「計画」タイルが最も重要です。

SQLテキスト

このタイルはデフォルトで縮小されています。完全なSQLテキストを表示するには、これを展開します。

分析

分析は、「メトリック」と「結果」の2つのタイルに分かれています。

図17-7 「分析」の「メトリック」



図17-8 「分析」の「結果」



「メトリック」タイルには、すべての重要なメトリックの統計が含まれ、すべての差異の概要が表示されます。この例では、経過時間がわずかに変化し、CPU時間が短縮されています。バッファ読取りは同じで、各実行で同じ作業が実行されることを意味します。しかし、主な違いは、実行が16回ではなく、337回であることです。したがって、負荷ははるかに高くなります。これが、経過時間が長い理由です。負荷が高い場合は、待機が発生している可能性があります。CPUがあふれていることを示すI/Oはありません。

パフォーマンスの変化のその他の理由は、計画の変更です。問合せに効率的な新しい計画または効率的でない計画があります。ワークロード分析レポートには、すべての共通の文について変更前の計画および変更後の計画が表示されます。