変更前のSQL試行を作成するには、次の手順に従います。
次のパラメータを使用して、EXECUTE_ANALYSIS_TASK
プロシージャをコールします。
task_name
パラメータを、実行するSQLパフォーマンス・アナライザのタスクの名前に設定します。
次のいずれかの方法でexecution_type
パラメータを設定します。
EXPLAIN PLAN
に設定して、SQL文を実行せずに、SQLチューニング・セット内のすべてのSQL文の実行計画を生成します。
TEST EXECUTE
(推奨)に設定し、SQLチューニング・セット内のすべての文を実行し、それらの実行計画および実行統計を生成します。TEST EXECUTE
を指定すると、プロシージャによって実行計画および実行統計が生成されます。実行統計によって、パフォーマンスが改善されたSQL文またはパフォーマンスが低下したSQL文をSQLパフォーマンス・アナライザで特定できるようになります。実行計画を生成するのみでなく、実行統計を収集することによってパフォーマンス分析の精度は大幅に向上しますが、分析にかかる時間は長くなります。
SQL試行の実行統計および計画に関してSQLチューニング・セットを参照するように、CONVERT SQLSET
を設定します。実行パラメータSQLSET_NAME
およびSQLSET_OWNER
の値も指定する必要があります。
execution_name
パラメータを使用して、実行を識別するための名前を指定します。指定しなかった場合、SQLパフォーマンス・アナライザによってタスク実行の名前が自動的に生成されます。
execution_params
パラメータを使用して、実行パラメータを指定します。execution_params
パラメータは、指定した実行の名前/値ペアとして指定されます。たとえば、次の実行パラメータを設定できます。
time_limit
パラメータは、グローバルな時間制限を指定して、タイムアウト前にSQLチューニング・セット内のすべてのSQL文を処理します。
local_time_limit
パラメータは、時間制限を指定して、タイムアウト前にSQLチューニング・セット内の各SQL文を処理します。
リモートでテストを実行する場合は、DATABASE_LINK
タスク・パラメータをDBMS_SQLPA
パッケージのEXECUTE
権限およびテスト・システムのADVISOR
権限を持つユーザーに接続しているパブリック・データベース・リンクのグローバル名に設定します。
行ロックの取得と行の変更を含め、DML文を完全に実行するには、EXECUTE_FULLDML
パラメータをTRUE
に設定します。SQLパフォーマンス・アナライザは、DML実行の後でロールバックを発行して、永続的な変更が行われないようにします。このパラメータのデフォルト値はFALSE
で、データを変更せずにDML文の問合せ部分のみが実行されます。
関連する取得済のinit.ora
設定をテスト実行時にリストアするには、APPLY_CAPTURED_COMPILENV
パラメータをTRUE
に設定します。一般に、SQL試行を実行するのは、環境を変更するときの変更内容のテストが目的であるため、これはデフォルトの動作ではありません。ただし、この方法は、init.ora
設定が変更されていない場合(索引作成などの場合)に使用できます。この方法は、リモートSQL試行ではサポートされていません。
次の例は、システム変更前に行われたファンクション・コールを示しています。
EXEC DBMS_SQLPA.EXECUTE_ANALYSIS_TASK(task_name => 'my_spa_task', - execution_type => 'TEST EXECUTE', - execution_name => 'my_exec_BEFORE_change');
変更前のパフォーマンス・データが作成されたら、システムに変更を行い、「変更後のSQL試行の作成」の説明に従って、変更後のテスト・システム上でSQLチューニング・セットのSQL文を再度実行し、変更後のパフォーマンス・データを作成します。
関連項目:
DBMS_SQLPA.EXECUTE_ANALYSIS_TASK
ファンクションについては、『Oracle Database PL/SQLパッケージおよびタイプ・リファレンス』を参照してください。