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

前
次

6.2.4 APIを使用した、パフォーマンスが低下したSQL文のチューニング

SQLパフォーマンス・アナライザ・レポートを確認したら、SQLパフォーマンスの比較後に特定されるパフォーマンスが低下したSQL文をチューニングする必要があります。パフォーマンスが低下したSQL文が多数表示される場合は、根本原因を特定し、システム・レベルの変更を行って問題を修正する必要があります。パフォーマンスが低下したSQL文が少数の場合は、SQLチューニング・アドバイザを使用して、部分的な解決を検討するか、SQL計画ベースラインを作成して、今後は変更前の実行計画を選択するようにオプティマイザに指示します。

APIを使用して、パフォーマンスが低下したSQL文をチューニングするには、次の手順に従います。

  • DBMS_SQLTUNEパッケージのCREATE_TUNING_TASKファンクションを使用して、SQLパフォーマンス・アナライザを実行するためのSQLチューニング・タスクを作成します。

    BEGIN
      DBMS_SQLTUNE.CREATE_TUNING_TASK(
        spa_task_name => 'my_spa_task',
        spa_task_owner => 'immchan',
        spa_compare_exec => 'my_exec_compare');
      DBMS_SQLTUNE.EXECUTE_TUNING_TASK(spa_task_name => 'my_spa_task');
    END;
    /
    

    この例では、my_spa_taskという名前のSQLパフォーマンス・アナライザ・タスクについて、my_exec_compareという名前でパフォーマンスの比較を実行したときにパフォーマンスが低下したSQL文をチューニングするSQLチューニング・タスクを作成し、実行します。この場合、このバージョンのCREATE_TUNING_TASKファンクション・コールを使用することが重要です。そうしないと、SQL文が取得された本番システムの環境でチューニングが行われる可能性があるため、システムの変更が反映されません。

    注意:

    別のデータベースでSQLワークロードをリモートで実行することを選択した場合は、パフォーマンスが低下したSQL文のチューニングに、このバージョンのCREATE_TUNING_TASKファンクション・コールを使用しないでください。かわりに、リモート・データベース上のSQL試行によって識別されたパフォーマンスの低下をチューニングしてください(これは、アプリケーション・スキーマがSQLパフォーマンス・アナライザを実行しているデータベース上に存在していないためです)。そのため、スキーマが存在し、変更が行われたデータベースで、SQLチューニング・アドバイザを実行する必要があります。詳細は、「APIを使用した、リモートSQL試行からのパフォーマンスが低下したSQL文のチューニング」を参照してください。

表6-1に、DBMS_SQLTUNE.CREATE_TUNING_TASKファンクションで使用できるSQLパフォーマンス・アナライザのパラメータを示します。

表6-1 CREATE_TUNING_TASKファンクションのSQLパフォーマンス・アナライザのパラメータ

パラメータ 説明

SPA_TASK_NAME

SQLパフォーマンス・アナライザ・タスクの名前。

SPA_TASK_OWNER

指定したSQLパフォーマンス・アナライザ・タスクの所有者。指定しないと、デフォル値の現行ユーザーになります。

SPA_COMPARE_EXEC

指定したSQLパフォーマンス・アナライザ・タスクのパフォーマンスの比較試行の実行名。指定しないと、デフォルト値として、指定したSQLパフォーマンス・アナライザ・タスクで最後に実行したCOMPARE PERFORMANCEタイプの名前になります。

パフォーマンスが低下したSQL文をチューニングしたら、SQLパフォーマンス・アナライザを使用して、それらの変更をテストする必要があります。新しいSQL試行をテスト・システムで実行すると、2番目の比較(新しいSQL試行と最初の試行の比較)が実行され、結果が検証されます。SQLパフォーマンス・アナライザによってパフォーマンスが安定していることが表示されたら、この手順で行った修正を本番システムに対して実行します。

Oracle Database 11g リリース2以上では、SQL文のチューニング時に、SQLチューニング・アドバイザによって代替計画が分析されます。SQLチューニング・アドバイザは、自動ワークロード・リポジトリに保存されている履歴計画も含め、SQL文の実行履歴を確認します。SQLチューニング・アドバイザによって代替計画が検出された場合は、そのSQL文で適切な実行計画が使用されるように、特定の計画を選択して計画ベースラインを作成できます。

関連項目:

  • SQLチューニング・アドバイザの使用方法の詳細な、『Oracle Database SQLチューニング・ガイド』を参照してください。

  • 代替計画の分析については、『Oracle Database SQLチューニング・ガイド』を参照してください。

  • DBMS_SQLTUNEパッケージについては、『Oracle Database PL/SQLパッケージおよびタイプ・リファレンス』を参照してください。