「データベース・ワークロードの取得の前提条件」で説明されているように、ワークロードの取得を開始する前に、まずデータベース・ワークロードを取得するための前提条件を満たしておく必要があります。また、「ワークロードの取得のオプション」で説明されているように、ワークロードの取得のオプションを確認する必要があります。
取得されたワークロードのリプレイを開始する前にリプレイ・システムを開始ポイントにリストアできるように、適切に定義されたワークロードの開始ポイントを取得することが重要です。ワークロードの取得の開始ポイントを適切に定義するには、ワークロードの取得が開始されたときにアクティブなユーザー・セッションが存在しないことが理想的です。アクティブ・セッションでトランザクションが進行中の場合、それらのトランザクションはその後のデータベース・リプレイで適切にリプレイされませんが、これは、トランザクションのうち、ワークロードの取得を開始した後に実行されたコールの部分しかリプレイされないためです。この問題を避けるには、ワークロードの取得を開始する前にSTARTUP RESTRICT
を使用してデータベースを制限モードで再起動します。ワークロードの取得が開始されると、データベースは自動的に無制限モードに切り替わり、ワークロードの取得中は通常の操作を続行できます。ワークロード取得前のデータベースの再起動の詳細は、「データベースの再起動」を参照してください。
ワークロード取得を開始するには、次の手順に従います。
BEGIN DBMS_WORKLOAD_CAPTURE.START_CAPTURE (name => 'dec10_peak', dir => 'dec10', duration => 600, capture_sts => TRUE, sts_cap_interval => 300); END; /
この例では、dec10_peak
というワークロードが600秒間取得され、dec10
というデータベース・ディレクトリ・オブジェクトで定義されたファイル・システムに格納されます。ワークロードの取得と並行して、SQLチューニング・セットも取得されます。
この例のSTART_CAPTURE
プロシージャでは、次のパラメータを使用します。
name
: 取得するワークロードの名前を指定する必須パラメータ。
dir
: 取得したワークロードを格納するディレクトリを指すディレクトリ・オブジェクトを指定する必須パラメータ。
duration
: ワークロードの取得が終了するまでの時間(秒)を指定するパラメータ。値を指定しない場合、ワークロードの取得は、FINISH_CAPTURE
プロシージャがコールされるまで続きます。
capture_sts
: ワークロードの取得と並行してSQLチューニング・セットを取得するかどうかを指定するパラメータ。このパラメータをTRUE
に設定した場合、ワークロードの取得中に1つのSQLチューニング・セットを取得し、ワークロードのリプレイ中にもう1つ別のSQLチューニング・セットを取得することで、SQL文を再実行しなくても、SQLパフォーマンス・アナライザを使用してそれらのSQLチューニング・セットを比較できます。この方法では、データベース・リプレイの実行中に、SQLパフォーマンス・アナライザ・レポートを取得して、変更の前と後のSQLパフォーマンスを比較することができます。また、「ワークロードの取得のAWRデータのエクスポート」で説明されているように、EXPORT_AWR
プロシージャを使用して、結果のSQLチューニング・セットをそのAWRデータとともにエクスポートできます。
この機能は、Oracle RACではサポートされていません。DBMS_WORKLOAD_CAPTURE
を使用して定義したワークロード取得フィルタは、SQLチューニング・セットの取得には適用されません。このパラメータのデフォルト値はFALSE
です。
sts_cap_interval
: カーソル・キャッシュからのSQLチューニング・セット取得の継続時間(秒)を指定するパラメータ。デフォルト値は300です。このパラメータの値をデフォルト値未満に設定すると、一部のワークロードで追加オーバーヘッドが生じる可能性があるため、そのような設定は推奨されません。