リプレイ・データを初期化し、接続とユーザーを再マッピングしたら、ワークロードのリプレイ用にデータベースを準備する必要があります。ワークロードのリプレイの準備については、「データベース・ワークロードのリプレイの手順」を参照してください。
ワークロードのリプレイをリプレイ・システムで準備するには、次の手順に従います。
BEGIN DBMS_WORKLOAD_REPLAY.PREPARE_REPLAY (synchronization => 'OBJECT_ID', capture_sts => TRUE, sts_cap_interval => 300); END; /
この例では、PREPARE_REPLAY
プロシージャによって、事前に初期化されたリプレイが準備されます。ワークロードのリプレイと並行して、SQLチューニング・セットも取得されます。
PREPARE_REPLAY
プロシージャでは、次のパラメータを使用します。
synchronization
: ワークロードのリプレイ時に同期化を使用するかどうかを決定する必須パラメータ。
このパラメータをOBJECT_ID
(デフォルト値)に設定すると、関連するすべてのCOMMIT
アクションが完了するまで、すべてのリプレイ・アクションは実行されません。関連するCOMMIT
アクションは、次の条件を満たしている必要があります。
ワークロードの取得内の指定したアクションの前に発行されている。
指定したアクションが暗黙的または明示的に参照しているデータベース・オブジェクトが1つ以上修正されている。
このパラメータをOBJECT_ID
に設定すると、ワークロードの取得時に同じデータベース・オブジェクトを参照しないCOMMIT
アクションに関して、ワークロードのリプレイ時の同時実行性が向上します。
このパラメータをSCN
に設定すると、取得したワークロード内のCOMMIT
の順序がリプレイ時に保持され、すべてのリプレイ・アクションがすべての依存COMMIT
アクションの完了後にのみ実行されます。
パラメータを「オフ」
に設定してこのオプションは無効にできますが、リプレイ時に大量のリプレイの相違が発生する可能性があります。このような状況は、ワークロードが独立したトランザクションで主に構成され、同期されていないリプレイ時の相違が許容される場合には望ましいこともあります。
connect_time_scale
: 指定した値で、ワークロードの取得を開始した時点からセッションが接続する時点までの経過時間をスケール変更するパラメータで、%値として解釈されます。このパラメータは、リプレイ中に同時ユーザー数を増加または削減する場合に使用します。デフォルト値は100です。
think_time_scale
: 同一セッションからの連続する2つのユーザー・コール間の経過時間をスケール変更するパラメータで、%値として解釈されます。このパラメータを0(ゼロ)に設定すると、リプレイ時にユーザー・コールは可能なかぎり高速でデータベースに送信されます。デフォルト値は100です。
think_time_auto_correct
: リプレイ時にユーザー・コールの完了にかかる時間が取得時より長い場合に、コール間の思考時間を(think_time_scale
パラメータに基づいて)変更するパラメータ。このパラメータは、TRUE
またはFALSE
に設定できます。このパラメータをTRUE
に設定すると、ワークロードのリプレイがワークロードの取得より長くかかっている場合に、思考時間が短縮されます。デフォルト値はTRUE
です。
scale_up_multiplier
: リプレイ時にワークロードをn倍に増加させる値を定義するパラメータ。取得された各セッションが、このパラメータで指定された値を掛けた数だけ、同時にリプレイされます。ただし、同一リプレイ・セッションの各セット内で1つのセッションのみが問合せと更新の両方を実行します。残りのセッションは問合せのみを実行します。
capture_sts
: ワークロードのリプレイと並行してSQLチューニング・セットを取得するかどうかを指定するパラメータ。このパラメータをTRUE
に設定した場合、ワークロードのリプレイ中に1つのSQLチューニング・セットを取得することで、SQL文を再実行しなくても、SQLパフォーマンス・アナライザを使用してそのSQLチューニング・セットを別のSQLチューニング・セットと比較できます。この方法では、データベース・リプレイの実行中に、SQLパフォーマンス・アナライザ・レポートを取得して、変更の前と後のSQLパフォーマンスを比較することができます。また、「ワークロードのリプレイのAWRデータのエクスポート」で説明されているように、EXPORT_AWR
プロシージャを使用して、結果のSQLチューニング・セットをそのAWRデータとともにエクスポートできます。
この機能は、Oracle RACではサポートされていません。DBMS_WORKLOAD_REPLAY
を使用して定義したワークロード・リプレイ・フィルタは、SQLチューニング・セットの取得には適用されません。このパラメータのデフォルト値はFALSE
です。
sts_cap_interval
: カーソル・キャッシュからのSQLチューニング・セット取得の継続時間(秒)を指定するパラメータ。デフォルト値は300です。このパラメータの値をデフォルト値未満に設定すると、一部のワークロードで追加オーバーヘッドが生じる可能性があるため、そのような設定は推奨されません。
これらのパラメータの設定の詳細は、「リプレイ・オプションの指定」を参照してください。