プライマリ・コンテンツに移動
Oracle® Database Testingガイド
12cリリース1 (12.1)
B71349-07
目次へ移動
目次
索引へ移動
索引

前
次

4.2 APIを使用した変更前のSQL試行の作成

この項では、DBMS_SQLPAパッケージを使用して変更前のパフォーマンス・データを構築する方法について説明します。

変更前の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パッケージおよびタイプ・リファレンス』を参照してください。