DBMS_AUTO_SQLTUNE
パッケージは、自動SQLチューニング・タスクを管理するためのインタフェースです。DBMS_SQLTUNE
とは異なり、DBMS_AUTO_SQLTUNE
パッケージには、DBA
ロールが必要です。
この章では、次の項目について説明します。
概要
セキュリティ・モデル
DBMS_AUTO_SQLTUNE
パッケージは、自動タスク・フレームワーク内で実行されるSQLチューニング・アドバイザ(DBMS_SQLTUNE
)へのインタフェースです。データベースでは、カタログ・スクリプトの一部として自動システム・タスクSYS_AUTO_SQL_TUNING_TASK
が作成されます。このタスクによってAWRから一連の高負荷SQLが自動的に選択され、そのSQLに対してSQLチューニング・アドバイザが実行されます。自動タスクでは、他のSQLチューニング・タスクと同じ包括的な分析が実行されます。
自動タスクでは、新旧のクエリー・プランを実行して検出されたSQLプロファイルがテストされます。自動SQLチューニングは、1つの重要な点で手動SQLチューニングと異なります。SQLプロファイルの自動実装が有効になると(デフォルトは無効)、データベースによって、パフォーマンスの大幅な向上が保証されるSQLプロファイルが実装されます。実装は、データベースが新しい計画のメリットを即座に得ることができるように、チューニング時に行われます。自動実装を有効化または無効化するには、SET_AUTO_TUNING_TASK_PARAMETER
APIを使用してACCEPT_SQL_PROFILES
パラメータを設定します。
各メンテナンス・ウィンドウで、自動チューニング・タスクはその結果を新しい実行として格納します。各実行の結果は、タスク名は同じですが、実行名は異なります。タスク実行の詳細は、DBA_ADVISOR_EXECUTIONS
ビューを問い合せてください。REPORT_AUTO_TUNING_TASKファンクションを使用すると、複数の実行にわたるレポートを表示できます。
このパッケージは、DBA
ロールを持つユーザーが使用できます。他のユーザーには、パッケージに対するEXECUTE
権限を明示的に付与する必要があります。EXECUTE_AUTO_TUNING_TASK
プロシージャは例外で、SYS
のみが起動できることに注意してください。
ユーザーは、このパッケージのAPIをコールして、自動チューニング・タスクの実行時の動作方法(自動SQLプロファイル作成の有効化や、タスク実行時の合計時間制限およびSQL単位の時間制限の構成など)を制御できます。これらの設定は、データベースのパフォーマンス全体に影響するため、ADVISOR
権限を持つすべてのユーザーがこのパッケージにアクセスすることは、適切ではない場合があります。
表30-1 DBMS_AUTO_SQLTUNEパッケージのサブプログラム
サブプログラム | 説明 |
---|---|
EXECUTE_AUTO_TUNING_TASKファンクションおよびプロシージャ |
自動SQLチューニング・タスクを即座に実行します( |
REPORT_AUTO_TUNING_TASKファンクション |
自動チューニング・タスクの履歴のテキスト・レポートを表示します。 |
SET_AUTO_TUNING_TASK_PARAMETERプロシージャ |
毎日の自動実行のタスク・パラメータ値を変更します。 |
このファンクションおよびプロシージャは、自動SQLチューニング・タスク(SYS_AUTO_SQL_TUNING_TASK
)を実行します。ファンクションとプロシージャの両方とも、新しいタスク実行のコンテキストで実行されます。ファンクションは新しい実行名を戻す点が異なります。SYS
のみがこのサブプログラムを起動できることに注意してください。
構文
DBMS_AUTO_SQLTUNE.EXECUTE_AUTO_TUNING_TASK( execution_name IN VARCHAR2 := NULL, execution_params IN dbms_advisor.argList := NULL, execution_desc IN VARCHAR2 := NULL) RETURN VARCHAR2; DBMS_AUTO_SQLTUNE.EXECUTE_AUTO_TUNING_TASK( execution_name IN VARCHAR2 := NULL, execution_params IN dbms_advisor.argList := NULL, execution_desc IN VARCHAR2 := NULL);
パラメータ
表30-2 EXECUTE_TUNING_TASKファンクションおよびプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
実行を修飾して識別するための名前。指定されていない場合は、アドバイザによって生成され、ファンクションによって戻されます。 |
|
指定した実行のパラメータ(名前、値)のリスト。実行パラメータは、指定した実行に対してのみ影響します。これらのパラメータは、(SET_AUTO_TUNING_TASK_PARAMETERプロシージャを使用して設定された)タスクに格納されているパラメータの値より優先されます。 |
|
実行について説明する256文字の長さの文字列。 |
このプロシージャは、自動SQLチューニング・タスクの結果を表示します。
構文
DBMS_AUTO_SQLTUNE.REPORT_AUTO_TUNING_TASK( begin_exec IN VARCHAR2 := NULL, end_exec IN VARCHAR2 := NULL, type IN VARCHAR2 := 'TEXT', level IN VARCHAR2 := 'TYPICAL', section IN VARCHAR2 := ALL, object_id IN NUMBER := NULL, result_limit IN NUMBER := NULL) RETURN CLOB;
パラメータ
表30-3 REPORT_TUNING_TASKファンクションのパラメータ
パラメータ | 説明 |
---|---|
|
使用する開始タスク実行の名前。 |
|
使用する終了タスク実行の名前。 |
|
作成するレポートのタイプ。設定可能な値は、テキストのレポートを作成する |
|
レポートの詳細なレベル。
|
|
含めるレポートのセクション。
|
|
レポートの制限対象となる単一の文を表すアドバイザ・フレームワーク・オブジェクトのID。すべての文を表す場合は、 |
|
レポートに表示されるSQL文の最大数。 |
例
-- Get the whole report for the most recent execution SELECT DBMS_AUTO_SQLTUNE.REPORT_AUTO_TUNING_TASK FROM DUAL; -- Show the summary for a range of executions SELECT DBMS_AUTO_SQLTUNE.REPORT_AUTO_TUNING_TASK(:begin_exec, :end_exec, 'TEXT', 'TYPICAL', 'SUMMARY') FROM DUAL; -- Show the findings for the statement of interest SELECT DBMS_AUTO_SQLTUNE.REPORT_AUTO_TUNING_TASK(:exec, :exec, 'TEXT', 'TYPICAL', 'FINDINGS', 5) FROM DUAL;
このプロシージャは、予約された自動チューニング・タスクSYS_AUTO_SQL_TUNING_TASK
に使用するVARCHAR2
タイプまたはNUMBER
タイプのSQLチューニング・パラメータの値を更新します。
構文
DBMS_AUTO_SQLTUNE.SET_AUTO_TUNING_TASK_PARAMETER( parameter IN VARCHAR2, value IN VARCHAR2); DBMS_AUTO_SQLTUNE.SET_AUTO_TUNING_TASK_PARAMETER( parameter IN VARCHAR2, value IN NUMBER);
パラメータ
表30-4 SET_AUTO_TUNING_TASK_PARAMETERプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
設定するパラメータの名前。パラメータを
自動チューニング・タスクでのみ、次のパラメータがサポートされます。
|
|
指定したパラメータの新しい値。 |