153 DBMS_SPM

DBMS_SPMパッケージは、様々なSQL文に対して保持される、計画履歴およびSQL計画のベースラインに対する制御された操作を実行するためのインタフェースを、DBAおよびその他のユーザーに提供することによって、SQL計画管理機能をサポートします。

この章のトピックは、次のとおりです:

参照:

詳細は、『Oracle Database SQLチューニング・ガイド』SQL計画管理の使用方法に関する項を参照してください。

153.1 DBMS_SPMの概要

DBMS_SPMパッケージを使用すると、ユーザーはSQL計画管理を使用して、SQL実行計画を管理できます。

SQL計画管理は、長期間にわたってSQL文の実行計画を記録し評価することで、SQL文の実行計画の突然の変更によってパフォーマンスが低下するのを防止し、効果的であることが判明している既存の計画セットで構成されるSQL計画ベースラインを作成します。次にSQL計画ベースラインを使用して、システムで発生する変更とは無関係に、対応するSQL文のパフォーマンスを保持します。SQL計画管理がSQLのパフォーマンスを向上または保持する一般的な使用のシナリオには次のようなものがあります。

  • 新しいオプティマイザ・バージョンをインストールするデータベース・アップグレードでは、通常、SQL文に対して若干の計画変更がありますが、ほとんどの計画変更ではパフォーマンスは変化しません。ただし、ある一部の計画変更では、パフォーマンスが低下する場合があります。SQL計画ベースラインを使用すると、データベースのアップグレードが原因でパフォーマンスの低下が発生する可能性は大幅に減少します。

  • 継続的なシステムおよびデータの変更は一部のSQL文の計画に影響を与え、パフォーマンスの低下の原因になる場合があります。SQL計画ベースラインを使用すると、パフォーマンスの低下が最小限に抑えられ、SQLのパフォーマンスが安定します。

  • 新しいアプリケーション・モジュールをデプロイメントすることは、システムに新しいSQL文を導入することを意味します。アプリケーション・ソフトウェアは、新しいSQL文の標準テスト構成で開発された適切なSQL実行計画を使用できます。システムの本番構成がテスト構成と大幅に異なる場合は、パフォーマンスを向上するために時間をかけてSQL計画ベースラインを進化させることができます。

153.2 DBMS_SPMのセキュリティ・モデル

このパッケージの所有者はSYSです。パッケージのプロシージャを実行するには、EXECUTEパッケージ権限が必要です。ADMINISTER SQL MANAGEMENT OBJECT権限を付与されているすべてのユーザーがDBMS_SPMパッケージを実行できます。

153.3 DBMS_SPMの定数

DBMS_SPMパッケージは、パラメータ値の指定に使用できる定数を提供します。

これらを、次の表に示します。これらの定数は、EVOLVE_SQL_PLAN_BASELINEファンクションtime_limitパラメータの標準入力として定義されます。

表153-1 DBMS_SPMの定数

定数 タイプ 説明

AUTO_LIMIT

INTEGER

2147483647

EVOLVE_SQL_PLAN_BASELINEファンクションにより費やされる適切な時間が判断されます。

NO_LIMIT

INTEGER

2147483647 -1

EVOLVE_SQL_PLAN_BASELINEファンクションにより費やされる時間に制限はありません。

153.5 DBMS_SPMのデータ構造

DBMS_SPMパッケージは、TABLEタイプを定義します。

表タイプ

153.5.1 DBMS_SPM NAMELIST表タイプ

このタイプでは入力パラメータとして名前のリストが使用できます。

構文

TYPE  name_list  IS TABLE OF VARCHAR2(30);

153.6 DBMS_SPMサブプログラムの要約

この表では、DBMS_SPMパッケージのサブプログラムをリストし、簡単に説明します。

表153-2 DBMS_SPMパッケージのサブプログラム

サブプログラム 説明

ACCEPT_SQL_PLAN_BASELINEプロシージャ

進化タスクのリコメンデーションに基づいて計画を受け入れます。

ALTER_SQL_PLAN_BASELINEファンクション

属性名/値の形式でSQL文と関連付けられている1つまたはすべての計画の属性を変更します。

CANCEL_EVOLVE_TASKプロシージャ

現在実行中の進化タスクを取り消します。

CONFIGUREプロシージャ

パラメータ/値の形式でSQL管理ベースの構成オプションを設定します。

CREATE_EVOLVE_TASKファンクション

アドバイザのタスクを作成し、そのパラメータを設定します。

CREATE_STGTAB_BASELINEプロシージャ

システム間でのSQL計画ベースラインの転送に使用するステージング表を作成します。

DROP_EVOLVE_TASKプロシージャ

進化したタスクを削除します。

DROP_SQL_PLAN_BASELINEファンクション

SQL文に関連付けられている1つまたはすべての計画を削除します。

EVOLVE_SQL_PLAN_BASELINEファンクション

1つ以上のSQL文に関連付けられているSQL計画ベースラインを進化させます。

EXECUTE_EVOLVE_TASKファンクション

以前に作成した進化タスクを実行します。

IMPLEMENT_EVOLVE_TASKファンクション

進化タスクのリコメンデーションに基づいて計画を実装します。

INTERRUPT_EVOLVE_TASKプロシージャ

現在実行中の進化タスクを中断します。

LOAD_PLANS_FROM_CURSOR_CACHEファンクション

SQL文のカーソル・キャッシュに存在する1つ以上の計画をロードします。

LOAD_PLANS_FROM_AWRファンクション

AWRからの計画を使用して一連のSQL文にSQL計画ベースラインを含むSQL管理ベース(SMB)をロードし、ロードした計画の数を戻します。

LOAD_PLANS_FROM_SQLSETファンクション

SQLチューニング・セット(STS)に保存されている計画をSQL計画ベースラインにロードします。

MIGRATE_STORED_OUTLINEファンクション

既存のストアド・アウトラインをSQL計画ベースラインに移行します。

PACK_STGTAB_BASELINEファンクション

SQL管理ベースからステージング表にSQL計画ベースラインをパック(エクスポート)します。

RESET_EVOLVE_TASKプロシージャ

進化タスクを初期状態にリセットします。

RESUME_EVOLVE_TASKプロシージャ

以前に中断したタスクを再開します。

REPORT_AUTO_EVOLVE_TASKファンクション

自動進化タスクの実行結果を表示します。

REPORT_EVOLVE_TASKファンクション

進化したタスクの結果を表示します。

SET_EVOLVE_TASK_PARAMETERプロシージャ

進化タスクのパラメータを設定します。

UNPACK_STGTAB_BASELINEファンクション

ステージング表からSQL管理ベースにSQL計画ベースラインをアンパック(インポート)します。

153.6.1 ACCEPT_SQL_PLAN_BASELINEプロシージャ

このプロシージャは、進化タスクのリコメンデーションに基づいて計画を受け入れます。

構文

DBMS_SPM.ACCEPT_SQL_PLAN_BASELINE  (
   task_name       IN  VARCHAR2,
   object_id       IN  NUMBER    := NULL,
   task_owner      IN  VARCHAR2  := NULL,
   force           IN  BOOLEAN   := FALSE);

パラメータ

表153-3 ACCEPT_SQL_PLAN_BASELINEプロシージャのパラメータ

パラメータ 説明

task_name

実装するタスクの識別子。

object_id

単一の計画を表すアドバイザ・フレームワーク・オブジェクトの識別子。NULLの場合、すべてのオブジェクトに対してレポートが生成されます。

task_owner

進化タスクの所有者。デフォルトは、現行のスキーマ所有者です。

force

アドバイザがそのようなアクションを推奨しなかった場合でも計画を受け入れます。デフォルトはFALSEです。検証済で、メリットの向上を十分に見込める場合にのみ計画を受け入れることを要求します。

153.6.2 ALTER_SQL_PLAN_BASELINEファンクション

このファンクションは、属性名/値の形式でSQL文と関連付けられている1つまたはすべての計画の属性を変更します。

構文

DBMS_SPM.ALTER_SQL_PLAN_BASELINE (
   sql_handle        IN VARCHAR2 := NULL,
   plan_name         IN VARCHAR2 := NULL,
   attribute_name    IN VARCHAR2,
   attribute_value   IN VARCHAR2)
 RETURN PLS_INTEGER;

パラメータ

表153-4 ALTER_SQL_PLAN_BASELINEファンクションのパラメータ

パラメータ 説明

sql_handle

SQL文のハンドル。属性変更のためにSQL文に関連付けられている計画を識別します。NULLの場合は、plan_nameを指定する必要があります。

plan_name

計画名。特定の計画を識別します。デフォルトのNULLにすると、sql_handleで識別されるSQL文に関連付けられているすべての計画の属性が設定されます。NULLの場合は、sql_handleを指定する必要があります。

attribute_name

設定する計画属性の名前(次の表を参照)。

attribute_value

設定する計画属性の値(次の表を参照)。

表153-5 ALTER_SQL_PLAN_BASELINEファンクションのパラメータの名前および値

名前 説明 設定可能な値

enabled

'YES'にすると、計画をオプティマイザで使用できます。これが使用されるかどうかは、acceptedステータスによって決まります。

'YES'または'NO'

fixed

'YES'にすると、時間が経過してもSQL計画ベースラインは進化しません。固定された計画は、固定されていない計画より優先されます。

'YES'または'NO'

autopurge

'YES'にすると、計画は特定の期間使用されない場合にパージされます。'NO'にすると、計画はパージされません。

'YES'または'NO'

plan_name

計画の名前。

最大30文字の文字列

description

計画の説明。

最大500バイトの文字列

戻り値

変更した計画の数。

使用上のノート

1つの計画を指定した場合は、様々なステータスの1つ、計画名または説明を変更できます。SQL文のすべての計画を指定した場合は、様々なステータスの1つまたは説明を変更できます。このファンクションは、同じ計画または他の計画で別の計画属性を設定するたびに何回もコールできます。

153.6.3 CANCEL_EVOLVE_TASKプロシージャ

このプロシージャは、現在実行中の進化タスクを取り消します。タスクから、すべての中間結果が削除されます。

構文

DBMS_SPM.CANCEL_EVOLVE_TASK  (
   task_name        IN  VARCHAR2);

パラメータ

表153-6 CANCEL_EVOLVE_TASKプロシージャのパラメータ

パラメータ 説明

task_name

取り消すタスクの識別子。

153.6.4 CONFIGUREプロシージャ

このプロシージャは、SQL管理ベース用およびSQL計画ベースラインのメンテナンス用の構成オプションを設定します。このファンクションを複数回呼び出し、毎回異なる構成オプションを設定できます。

構文

DBMS_SPM.CONFIGURE (
   parameter_name    IN VARCHAR2,
   parameter_value   IN VARCHAR2 := NULL,
   allow             IN BOOLEAN := TRUE);

パラメータ

表153-7 CONFIGUREプロシージャのパラメータ

パラメータ 説明

parameter_name

設定するパラメータの名前(次の表を参照)。

parameter_value

設定するパラメータの値(次の表を参照)。parameter_valueの最大長は1000文字です。

allow

auto_capture_*パラメータに対して一致するSQL文を含めるか(true)除外するか(false)。nullの場合、プロシージャは指定されたパラメータを無視します。

表153-8 CONFIGUREプロシージャのパラメータの名前および値

パラメータ名 説明 設定可能な値 デフォルト値

auto_capture_action

(allowTRUEFALSEかに応じて) SQL計画管理自動取得で含める(=)または除外する(<>)アクション。null値は、parameter_nameのフィルタ全体を削除します。

データベースでこのフィルタが使用されるのは、OPTIMIZER_CAPTURE_SQL_PLAN_BASELINESTRUEである場合のみです。

アクション名: R%など

auto_capture_module

(allowTRUEFALSEかに応じて) SQL計画管理自動取得で含める(=)または除外する(<>)モジュール。null値は、parameter_nameのフィルタ全体を削除します。

データベースでこのフィルタが使用されるのは、OPTIMIZER_CAPTURE_SQL_PLAN_BASELINESTRUEである場合のみです。

モジュール名(LOGGERなど)。

auto_capture_parsing_schema_name

(allowTRUEFALSEかに応じて) SQL計画管理自動取得で含める(=)または除外する(<>)解析スキーマ。null値は、parameter_nameのフィルタ全体を削除します。

データベースでこのフィルタが使用されるのは、OPTIMIZER_CAPTURE_SQL_PLAN_BASELINESTRUEである場合のみです。

スキーマ名、HRなど

auto_capture_sql_text

(allowTRUEFALSEかに応じて) LIKEまたはNOT LIKEのSQLテキストに適用する検索パターン。null値は、parameter_nameのフィルタ全体を削除します。

データベースでこのフィルタが使用されるのは、OPTIMIZER_CAPTURE_SQL_PLAN_BASELINESTRUEである場合のみです。

SQL文のテキスト、SELECT a%など

plan_retention_weeks

データベースによってパージされるまで未使用の計画を保持する週の数。

NULL値の場合、デフォルト値の53週または1年プラス1週にリセットされます。(これにより、毎年実行する問合せの計画を保持します。)allowの値は無視されます。

5–523

53

space_budget_percent

SQL管理ベースに使用可能なSYSAUX領域の最大の割合。

この値を超えると、アラートが発行されます。NULL値の場合、割合がデフォルト値の10%にリセットされます。allowの値は無視されます。

1–50

10

例外

表153-9 CONFIGUREの例外

エラー番号 説明
ORA-38133 パラメータ名が無効です
ORA-38134 パラメータ値が無効です
ORA-38150 新しいフィルタに十分な領域がありません
ORA-38151 モジュール名が長すぎます
ORA-38152 アクション名が長すぎます
ORA-38304 ユーザー名が指定されていないか、または無効です

使用上のノート

  • parameter_nameauto_capture_sql_textである場合、parameter_valueは自動検索フィルタです。このフィルタは、allow=>trueであるときにLIKE parameter_nameの検索パターンを使用します。このフィルタは、allow=>falseであるときにNOT LIKE parameter_nameの検索パターンを使用します。

    その他、NULL以外のすべてのparameter_nameの値の場合、検索パターンはallowの設定に依存します。このパラメータは、allow=>trueであるときに等号(=)を使用します。このパラメータは、allow=>falseであるときに不等号(<>)を使用します。

  • タイプが異なる自動取得パラメータを複数構成できます。同じパラメータに対して複数の値を指定することはできません。代わりに、特定のパラメータに対して指定した値が結合されます。たとえば、auto_capture_sql_textに'%TABLE1%'、TRUEおよび'%TABLE2%'を指定すると、FALSEはSQLテキストLIKE '%TABLE1%'およびNOT LIKE '%TABLE2%'になります。データベースでこれらの構成設定が使用されるのは、初期化パラメータOPTIMIZER_CAPTURE_SQL_PLAN_BASELINESTRUEに設定されている場合のみです。

  • parameter_valueにNULL値を指定すると、parameter_nameのフィルタが完全に削除されます。allow=FALSEと組み合せてparamter_value=>'%'を使用することで、パラメータのすべての値をフィルタ処理で除外し、個別のフィルタを作成して指定された値のみを含めることができます。DBA_SQL_MANAGEMENT_CONFIGビューには、現在のフィルタが示されます。

  • SQL管理ベースのデフォルトの領域配分は、SYSAUX表領域のサイズの10パーセントのみです。領域配分は、最大50%に設定できます。未使用の計画のデフォルトの保存期間は1年と1週間で、すなわち計画は、1年を超えて未使用の場合に、自動的にパージされます。保存期間は、最大523週間(すなわち10年強)に設定できます。

  • SQL管理ベースによって占有される領域が、定義されている領域配分の制限を超えると、週次データベース・アラートが生成されます。

次の例では、SELECT a%のようなSQLテキスト用のフィルタを作成します。

EXEC DBMS_SPM.CONFIGURE('AUTO_CAPTURE_SQL_TEXT', 'select a%', 'TRUE');

次の例では、HR解析スキーマを除外します。

EXEC DBMS_SPM.CONFIGURE('AUTO_CAPTURE_PARSING_SCHEMA_NAME', 'HR', 'FALSE');

次の例では、SQLテキスト用の既存のフィルタを削除します。

EXEC DBMS_SPM.CONFIGURE('AUTO_CAPTURE_SQL_TEXT', NULL, NULL);

次の例では、SQLテキストselect a%に対するLIKEまたはNOT LIKEフィルタを削除します。

EXEC DBMS_SPM.CONFIGURE('AUTO_CAPTURE_SQL_TEXT', 'select a%', NULL);

次の例では、述語(action LIKE 'R%') OR (action LIKE '%E_')を使用してフィルタを作成します。

EXEC DBMS_SPM.CONFIGURE('AUTO_CAPTURE_ACTION', 'R%', 'TRUE');
EXEC DBMS_SPM.CONFIGURE('AUTO_CAPTURE_ACTION', '%E_', 'TRUE');

次の例では、述語NOT(module LIKE 'LOGGER') AND NOT(module LIKE 'UTIL__')を使用してフィルタを作成します。

EXEC DBMS_SPM.CONFIGURE('AUTO_CAPTURE_MODULE', 'LOGGER', 'FALSE');
EXEC DBMS_SPM.CONFIGURE('AUTO_CAPTURE_MODULE', 'UTIL__', 'FALSE');

153.6.5 CREATE_EVOLVE_TASKファンクション

このファンクションには2つのオーバーロードがあり、その両方ともでアドバイザのタスクが作成され、パラメータが設定されます。SQLハンドルを取るこのバージョンは、特定のSQL文の1つ以上の計画を進化させる進化タスクを作成します。

構文

DBMS_SPM.CREATE_EVOLVE_TASK (
   sql_handle    IN  VARCHAR2  := NULL,
   plan_name     IN  VARCHAR2  := NULL,
   time_limit    IN  NUMBER    := DBMS_SPM.AUTO_LIMIT,
   task_name     IN  VARCHAR2  := NULL,
   description   IN  VARCHAR2  := NULL)
  RETURN VARCHAR2;

DBMS_SPM.CREATE_EVOLVE_TASK (
   plan_list     IN  DBMS_SPM.NAME_LIST,
   time_limit    IN  NUMBER    := DBMS_SPM.AUTO_LIMIT,
   task_name     IN  VARCHAR2  := NULL,
   description   IN  VARCHAR2  := NULL)
  RETURN VARCHAR2;

パラメータ

表153-10 CREATE_EVOLVE_TASKファンクションのパラメータ

パラメータ 説明

sql_handle

SQL文のハンドル。デフォルトのNULLでは、未承認の計画を指定するすべてのSQL文が考慮されます。

plan_list

計画名のリスト。計画は、異なるSQL文に属している場合があります。

plan_name

計画の識別子。デフォルトのNULLでは、SQLハンドルがNULLの場合、指定されたSQLハンドルのすべての未承認の計画またはすべてのSQL文が考慮されます。

time_limit

時間制限(分)。時間制限はグローバルで、次の方法で使用されます。最初の未承認の計画の時間制限は、入力値と同じです。2番目の未承認の計画の時間制限は、入力値から最初の計画の検証で費やした時間を差し引いた値になります。それ以降の時間制限も、同様の方法で計算します。デフォルトのDBMS_SPM.AUTO_LIMITにすると、計画に対して実行する必要がある検証の数に基づいて適切な時間制限が選択されます。値DBMS_SPM.NO_LIMITは、時間制限がないことを意味します。

task_name

進化タスク名

description

タスクの説明(最大256文字)。

戻り値

SQL進化タスクの一意の名前。

153.6.6 CREATE_STGTAB_BASELINEプロシージャ

このプロシージャは、システム間でのSQL計画ベースラインの転送に使用するステージング表を作成します。

構文

DBMS_SPM.CREATE_STGTAB_BASELINE (
   table_name        IN VARCHAR2,
   table_owner       IN VARCHAR2 := NULL,
   tablespace_name   IN VARCHAR2 := NULL);

パラメータ

表153-11 CREATE_STGTAB_BASELINEプロシージャのパラメータ

パラメータ 説明

table_name

SQL計画ベースラインをパックおよびアンパックする目的で作成するステージング表の名前。

table_owner

ステージング表の所有者の名前。デフォルトのNULLにすると、現行のスキーマが表の所有者になります。

tablespace_name

表領域の名前。デフォルトのNULLにすると、デフォルトの表領域にステージング表が作成されます。

使用上のノート

ステージング表の作成が最初のステップです。システム間でSQL計画ベースラインを移行するには、次の一連のステップを実行する必要があります。

  1. ソース・システムにステージング表を作成します。

  2. ソース・システムでSQL計画ベースラインを選択して、ステージング表にパックします。

  3. Oracle EXPユーティリティまたはOracle Data Pumpを使用して、フラット・ファイルにステージング表をエクスポートします。

  4. ターゲット・システムにフラット・ファイルを転送します。

  5. Oracle IMPユーティリティまたはOracle Data Pumpを使用して、フラット・ファイルからステージング表をインポートします。

  6. ステージング表からSQL計画ベースラインを選択して、ターゲット・システムにアンパックします。

153.6.7 DROP_EVOLVE_TASKプロシージャ

このプロシージャは、進化したタスクを削除します。

構文

DBMS_SPM.DROP_EVOLVE_TASK  (
   task_name        IN  VARCHAR2);

パラメータ

表153-12 DROP_EVOLVE_TASKプロシージャのパラメータ

パラメータ 説明

task_name

削除するタスクの識別子。

153.6.8 DROP_SQL_PLAN_BASELINEファンクション

このファンクションは、SQL文に関連付けられている1つまたはすべての計画を削除します。

構文

DBMS_SPM.DROP_SQL_PLAN_BASELINE (
   sql_handle     IN VARCHAR2 := NULL,
   plan_name      IN VARCHAR2 := NULL)
RETURN PLS_INTEGER;

パラメータ

表153-13 DROP_SQL_PLAN_BASELINEファンクションのパラメータ

パラメータ 説明

sql_handle

SQL文のハンドル。削除するSQL文に関連付けられている計画を識別します。NULLの場合は、plan_nameを指定する必要があります。

plan_name

計画名。特定の計画を識別します。デフォルトのNULLにすると、sql_handleで識別されるSQL文に関連付けられているすべての計画が削除されます。

戻り値

削除した計画の数。

153.6.9 EVOLVE_SQL_PLAN_BASELINEファンクション

このファンクションは、1つ以上のSQL文に関連付けられているSQL計画ベースラインを進化させます。SQL計画ベースラインは、1つ以上の承認されていない計画が承認済に変更されると進化します。

ユーザーによって問合せ(パラメータverify = 'YES')が行われた場合、関連付けられているSQL計画ベースラインから選択された計画のパフォーマンスと各未承認の計画の実行パフォーマンスが比較されます。未承認の計画のパフォーマンスがSQL計画ベースラインのパフォーマンスより優れている場合、未承認の計画は承認済の計画に変更されます(ただし、ユーザーがこのようなアクションを許可している場合(パラメータcommit = 'YES')にかぎられます)。

このファンクションの2番目の形式では、計画リスト形式を使用します。

構文

DBMS_SPM.EVOLVE_SQL_PLAN_BASELINE (
   sql_handle   IN VARCHAR2 := NULL,
   plan_name    IN VARCHAR2 := NULL,
   time_limit   IN INTEGER  := DBMS_SPM.AUTO_LIMIT,
   verify       IN VARCHAR2 := 'YES',
   commit       IN VARCHAR2 := 'YES')
  RETURN CLOB;

DBMS_SPM.EVOLVE_SQL_PLAN_BASELINE (
   plan_list    IN DBMS_SPM.NAME_LIST,
   time_limit   IN INTEGER  := DBMS_SPM.AUTO_LIMIT,
   verify       IN VARCHAR2 := 'YES',
   commit       IN VARCHAR2 := 'YES')
  RETURN CLOB;

パラメータ

表153-14 EVOLVE_SQL_PLAN_BASELINEファンクションのパラメータ

パラメータ 説明

sql_handle

SQL文の識別子。plan_nameを指定しないかぎり、NULLにすると、SQL計画ベースライン内の未承認の計画を含むすべての文が考慮されます。

plan_name

計画の識別子。デフォルトのNULLにすると、識別されたSQL文、またはsql_handleNULLの場合はすべてのSQL文のSQL計画ベースラインで未承認の計画が考慮されます。

plan_list

計画名のリスト。リストないの各計画は、同じSQL文に属するものでも、別のSQL文に属するものでもかまいません。

time_limit

時間制限(分)。これはverify = 'YES'の場合にのみ適用されます。時間制限はグローバルで、次のように使用され、たとえば最初の未承認の計画を検証する場合の時間制限は入力値と同じ値に設定され、2番目の未承認の計画を検証する場合の制限時間は(入力値 - 最初の計画の検証に要した時間)という具合に設定されます。

  • DBMS_SPM.AUTO_LIMIT(デフォルト)にすると、計画に対して実行する必要がある検証の数に基づいて適切な時間制限が選択されます。

  • DBMS_SPM.NO_LIMITにすると、時間制限は設定されません。

  • 正の整数値は、ユーザーが指定した時間制限を表します。

verify

未承認の計画を承認済の計画に変更する前に、計画を実行し、パフォーマンスを比較するかどうかを指定します。パフォーマンスの検証では、未承認の計画および対応するSQL計画ベースラインから選択された計画が実行され、これらの計画のパフォーマンス統計が比較されます。未承認の計画でパフォーマンスが向上した場合、未承認の計画は承認済の計画に変更されます。

  • 'YES'(デフォルト)にすると、未承認の計画を承認済の計画に変更する前に、未承認の計画でパフォーマンスが向上することが検証されます。

  • 'NO'にすると、計画は実行されず、未承認の計画が承認済の計画に変更されるのみです。

commit

未承認の計画のACCEPTEDステータスを'NO'から'YES'に更新するかどうかを指定します。

  • 'YES'(デフォルト): 条件を満たす未承認の計画を更新し、verify = 'YES'の場合はその更新およびパフォーマンスの検証結果を示すレポートを生成します。

  • 'NO': 更新せずにレポートを生成します。verify = 'NO'とともにcommit = 'NO'を指定すると、操作できなくなります。

戻り値

書式設定されたテキスト・レポートが含まれているCLOB。レポートには、ACCEPTEDステータスへの変更が可能な未承認の計画が順に示されます。また、verify = 'YES'の場合は、それらの計画のパフォーマンスの検証結果も示されます。

使用上のノート

このサブプログラムを起動するには、ADMINISTER SQL MANAGEMENT OBJECT権限が必要です。

153.6.10 EXECUTE_EVOLVE_TASKファンクション

このファンクションは、以前に作成した進化タスクを実行します。

構文

DBMS_SPM.EXECUTE_EVOLVE_TASK  (
   task_name        IN  VARCHAR2,
   execution_name   IN  VARCHAR2  := NULL,
   execution_desc   IN  VARCHAR2  := NULL);
 RETURN VARCHAR2;

パラメータ

表153-15 EXECUTE_EVOLVE_TASKファンクションのパラメータ

パラメータ 説明

task_name

進化タスク名

execution_name

実行を修飾して識別するための名前。指定されていない場合は、アドバイザによって生成され、ファンクションによって戻されます。

execution_desc

実行の説明(最大256文字)。

戻り値

新しい実行の名前。

153.6.11 IMPLEMENT_EVOLVE_TASKファンクション

このファンクションは、進化タスクによって推奨されているすべてのアクションを実装します。

構文

DBMS_SPM.IMPLEMENT_EVOLVE_TASK  (
   task_name       IN  VARCHAR2,
   task_owner      IN  VARCHAR2  := NULL,
   execution_name  IN  VARCHAR2  := NULL,
   force           IN BOOLEAN    := FALSE)
 RETURN NUMBER;

パラメータ

表153-16 IMPLEMENT_EVOLVE_TASKファンクションのパラメータ

パラメータ 説明

task_name

レポートするタスクの識別子。

task_owner

進化タスクの所有者。デフォルトは、現行のスキーマ所有者です。

execution_name

実行を修飾して識別するための名前。NULLの場合、最後のタスク実行に対してアクションが実行されます。

force

アドバイザがそのようなアクションを推奨しなかった場合でもすべての計画を受け入れます。デフォルトはFALSEです。検証済で、メリットの向上を十分に見込める場合にのみ計画を受け入れることを要求します。

戻り値

受け入れた計画の数。

153.6.12 INTERRUPT_EVOLVE_TASKプロシージャ

このプロシージャは、現在実行中の進化タスクを中断します。このタスクは、通常の終了時と同様に操作を終了し、ユーザーは中間結果にアクセスできます。タスクは後で再開できます。

構文

DBMS_SPM.INTERRUPT_EVOLVE_TASK  (
   task_name        IN  VARCHAR2);

パラメータ

表153-17 INTERRUPT_EVOLVE_TASKプロシージャのパラメータ

パラメータ 説明

task_name

中断するタスクの識別子。

153.6.13 LOAD_PLANS_FROM_AWRファンクション

このファンクションは、AWRからの計画を使用して一連のSQL文のSQL計画ベースラインをSQL管理ベース(SMB)にロードし、ロードした計画の数を戻します。

構文

DBMS_SPM.LOAD_PLANS_FROM_AWR
   begin_snap      IN  NUMBER,
   end_snap        IN  NUMBER,
   basic_filter    IN  VARCHAR2 := NULL,
   fixed           IN  VARCHAR2 := 'NO',
   enabled         IN  VARCHAR2 := 'YES',
   commit_rows     IN  NUMBER := 1000)
 RETURN PLS_INTEGER;

パラメータ

表153-18 LOAD_PLANS_FROM_AWRファンクションのパラメータ

パラメータ 説明

begin_snap

開始スナップショット

end_snap

終了スナップショット

basic_filter

AWRからSQLをフィルタするためのSQL述語。NULLにすると、AWRのすべての計画が選択されます。

SQLSET_ROWの属性で定義された共有SQL領域からSQLをフィルタするためのSQL述語を指定します。

fixed

デフォルトは'NO'で、ロードされた計画によってロード先のSQL計画ベースラインの現在の'fixed'プロパティは変更されません。

enabled

デフォルトは'YES'で、ロードされた計画がオプティマイザによって考慮されます。

commit_rows

定期的なコミットを実行する前にロードするSQL計画の数。

dbid

インポート済またはPDBレベルのAWRデータに使用されるDBID。

使用上のノート

Administer SQL Management Object権限が必要です。

参照:

SQLSET_ROWオブジェクトの詳細は、SQLSET_ROWオブジェクト・タイプを参照してください。

153.6.14 LOAD_PLANS_FROM_CURSOR_CACHEファンクション

このファンクションは、1つまたは1組のSQL文のカーソル・キャッシュに存在する1つ以上の計画をロードします。これには、4つのオーバーロード(SQL文テキストを使用するもの、SQLハンドルを使用するもの、SQL IDを使用するもの、またはattribute_nameattribute_valueのペアを使用するもの)があります。

構文

DBMS_SPM.LOAD_PLANS_FROM_CURSOR_CACHE (
   sql_id            IN  VARCHAR2,
   plan_hash_value   IN  NUMBER   := NULL,
   sql_text          IN  CLOB,
   fixed             IN  VARCHAR2 := 'NO',
   enabled           IN  VARCHAR2 := 'YES')
 RETURN PLS_INTEGER;

DBMS_SPM.LOAD_PLANS_FROM_CURSOR_CACHE (
   sql_id            IN  VARCHAR2,
   plan_hash_value   IN  NUMBER   := NULL,
   sql_handle        IN  VARCHAR2,
   fixed             IN  VARCHAR2 := 'NO',
   enabled           IN  VARCHAR2 := 'YES')
 RETURN PLS_INTEGER;

DBMS_SPM.LOAD_PLANS_FROM_CURSOR_CACHE (
   sql_id            IN  VARCHAR2,
   plan_hash_value   IN  NUMBER   := NULL,
   fixed             IN  VARCHAR2 := 'NO',
   enabled           IN  VARCHAR2 := 'YES')
 RETURN PLS_INTEGER;

DBMS_SPM.LOAD_PLANS_FROM_CURSOR_CACHE (
   attribute_name   IN VARCHAR2,
   attribute_value  IN VARCHAR2,
   fixed            IN VARCHAR2 := 'NO',
   enabled          IN VARCHAR2 := 'YES')
  RETURN PLS_INTEGER;

パラメータ

表153-19 LOAD_PLANS_FROM_CURSOR_CACHEファンクションのパラメータ

パラメータ 説明

sql_id

SQL文の識別子。カーソル・キャッシュ内のSQL文を識別します。ノート: 3番目のオーバーロードでは、識別されたSQL文のテキストがカーソル・キャッシュから抽出され、計画のロード先となるSQL計画ベースラインの特定にそのテキストが使用されます。SQL計画ベースラインが存在しない場合は作成されます。

plan_hash_value

計画の識別子。デフォルトのNULLにすると、SQL_IDで識別されるSQL文のカーソル・キャッシュに存在するすべての計画が取得されます。

sql_text

計画のロード先となるSQL計画ベースラインを特定する場合に使用されるSQLテキスト。SQL計画ベースラインが存在しない場合は作成されます。ユーザーがSQL文のテキストにヒントを追加してSQL文をチューニングし、その結果生成された計画を元のSQL文のSQL計画ベースラインにロードする場合は、テキストの使用が重要となります。

sql_handle

計画のロード先となるSQL計画ベースラインを特定する場合に使用されるSQLハンドル。sql_handleは、既存のSQL計画ベースラインである必要があります。ユーザーがSQL文のテキストにヒントを追加してSQL文をチューニングし、その結果生成された計画を元のSQL文のSQL計画ベースラインにロードする場合は、ハンドルの使用が重要となります。

fixed

デフォルトの'NO'にすると、ロードされた計画が、固定されていない計画として使用されます。値を'YES'にすると、ロードされた計画が、固定された計画として使用され、時間が経過してもSQL計画のベースラインは進化しません。

attribute_name

次の属性名のいずれかになります。

  • SQL_TEXT''

  • 'PARSING_SCHEMA_NAME'

  • 'MODULE'

  • 'ACTION'

attribute_value

属性値は、属性名が'SQL_TEXT'の場合、LIKE条件の検索パターンとして使用されます。それ以外の場合は、等価検索値として使用されます (たとえば、attribute_name => 'SQL_TEXT'およびattribute_value => '% HR-123 %'を指定すると、選択フィルタとしてSQL_TEXT LIKE '% HR-123 %'が適用されます。同様に、attribute_name => 'MODULE'およびattribute_value => 'HR'を指定すると、計画選択フィルタとして'MODULE = 'HR'が適用されます)。属性値は、二重引用符で囲んだ場合または属性名が'SQL_TEXT'の場合を除き、大文字になります。

enabled

デフォルトの'YES'にすると、ロードされた計画が、オプティマイザで使用できるように有効になります。

戻り値

ロードした計画の数。

使用上のノート

このサブプログラムを起動するには、ADMINISTER SQL MANAGEMENT OBJECT権限が必要です。

153.6.15 LOAD_PLANS_FROM_SQLSETファンクション

このファンクションは、SQLチューニング・セット(STS)に保存されている計画をSQL計画ベースラインにロードします。STSからロードした計画は、パフォーマンスに関しては検証されませんが、承認済の計画として既存または新規のSQL計画ベースラインに追加されます。このファンクションを使用すると、新しいSQL計画ベースラインでSQL管理ベースをシードできます。

構文

DBMS_SPM.LOAD_PLANS_FROM_SQLSET (
   sqlset_name      IN  VARCHAR2,
   sqlset_owner     IN  VARCHAR2 := NULL,
   basic_filter     IN  VARCHAR2 := NULL,
   fixed            IN  VARCHAR2 := 'NO',
   enabled          IN  VARCHAR2 := 'YES'
   commit_rows      IN  NUMBER   := 1000)
RETURN PLS_INTEGER;

パラメータ

表153-20 LOAD_PLANS_FROM_SQLSETファンクションのパラメータ

パラメータ 説明

sqlset_name

SQL計画ベースラインに計画をロードするSTSの名前。

sqlset_owner

STSの所有者。NULLにすると、現行のスキーマが所有者になります。

basic_filter

条件を満たす計画のみをロード対象として選択するためにSTSに適用されるフィルタ。このフィルタは、DBA_SQLSET_STATEMENTSビューに対して指定可能なWHERE句条件の形式にすることができます。たとえば、basic_filter => 'sql_text like ''select /*LOAD_STS*/%'''basic_filter => 'sql_id=''b62q7nc33gzwx'''などです。

fixed

デフォルトの'NO'にすると、ロードされた計画が、固定されていない計画として使用されます。値を'YES'にすると、ロードされた計画が、固定された計画として使用され、時間が経過してもSQL計画のベースラインは進化しません。

enabled

デフォルトの'YES'にすると、ロードされた計画が、オプティマイザで使用できるように有効になります。

commit_rows

定期的なコミットを実行する前にロードするSQL計画の数。UNDOログのサイズ縮小に役立ちます。

戻り値

ロードした計画の数。

使用上のノート

  • リモート・システムから計画をロードするには、まずリモート・システムのSTSに計画をロードし、リモート・システムからローカル・システムにSTSをエクスポート/インポートしてから、このファンクションを使用します。

  • 自動ワークロード・リポジトリ(AWR)から計画をロードするには、まずAWRスナップショットに保存されている計画をSTSにロードしてから、このプロシージャを使用します。

  • また、1つ以上のSQL文のカーソル・キャッシュに存在する計画をSTSに取得してから、このプロシージャを使用することもできます。

153.6.16 MIGRATE_STORED_OUTLINEファンクション

このファンクションは、1つ以上のSQL文のストアド・アウトラインをSQL管理ベース(SMB)の計画ベースラインに移行します。ユーザーは、アウトライン名、SQLテキストまたはアウトライン・カテゴリに基づいてどのストアド・アウトラインを移行するか指定することができ、またシステムにあるすべてのストアド・アウトラインをSQL計画ベースラインに移行することもできます。

このファンクションの2番目のオーバーロードは、1つ以上のSQL文のストアド・アウトラインを1つ以上のアウトライン名を付与されたSQL管理ベース(SMB)の計画ベースラインに移行します。

構文

DBMS_SPM.MIGRATE_STORED_OUTLINE (
   attribute_name     IN  VARCHAR2,
   attribute_value    IN  CLOB,
   fixed              IN  VARCHAR2 := 'NO')
 RETURN CLOB;

DBMS_SPM.MIGRATE_STORED_OUTLINE (
   outln_list         IN  DBMS_SPM.NAME_LIST,
   fixed              IN  VARCHAR2 := 'NO')
 RETURN CLOB;

パラメータ

表153-21 MIGRATE_STORED_OUTLINEファンクションのパラメータ

パラメータ 説明

attribute_name

attribute_valueで使用するパラメータのタイプを指定して、移行されたストアド・アウトラインを識別します。大文字または小文字を区別しません。有効な値は、次のとおりです。

  • outline_name

  • sql_text

  • category

  • all

attribute_value

attribute_nameに基づいて次の値が可能です。

  • 移行するストアド・アウトラインの名前。

  • 移行するストアド・アウトラインのSQLテキスト。

  • 移行するストアド・アウトラインのカテゴリ。

  • attribute_nameallの場合はNULLです。

fixed

NO(デフォルト)またはYES。移行中に生成された計画の「固定」状態を指定します。デフォルトでは、計画は「固定されていない」計画として生成されます。

outln_list

移行するアウトライン名のリスト。

戻り値

次のような、移行中に統計を説明する書式設定されたレポートを含むCLOB

  • 正常に移行されたストアド・アウトラインの数。

  • 移行に失敗したストアド・アウトラインの数(および対応するアウトライン名)と失敗の理由。

使用上のノート

  • ユーザーがアウトライン名を指定すると、ファンクションは、移行する単一のストアド・アウトラインを一意に識別する付与されたアウトライン名に基づいてストアド・アウトラインを計画ベースラインに移行します。

  • ユーザーがSQLテキストを指定すると、ファンクションは指定したSQL文のために作成されたすべてのストアド・アウトラインを移行します。単一のSQL文は、異なるカテゴリ名の下で作成した複数のストアド・アウトラインを持つことができます。各ストアド・アウトラインに1つの計画ベースライン計画が作成されます。新しい計画ベースラインには、DEFAULTに設定されたカテゴリ名があります。計画ベースラインのモジュール名は、ストアド・アウトラインと同じになるように設定されます。

  • ユーザーがカテゴリ名を指定すると、ファンクションは指定したカテゴリ名があるすべてのストアド・アウトラインを移行します。SQL文ごとのカテゴリごとに1つのストアド・アウトラインのみが存在します。各ストアド・アウトラインに1つの計画ベースラインが作成されます。

  • ユーザーがallの移行を指定すると、ファンクションは、システムにあるすべてのストアド・アウトラインを計画ベースラインに移行します。各ストアド・アウトラインに1つの計画ベースラインが作成されます。

153.6.17 PACK_STGTAB_BASELINEファンクション

このファンクションは、SQL管理ベースからステージング表にSQL計画ベースラインをパック(エクスポート)します。

構文

DBMS_SPM.PACK_STGTAB_BASELINE (
   table_name       IN VARCHAR2,
   table_owner      IN VARCHAR2 := NULL,
   sql_handle       IN VARCHAR2 := NULL,
   plan_name        IN VARCHAR2 := NULL,
   sql_text         IN CLOB     := NULL,
   creator          IN VARCHAR2 := NULL,   origin           IN VARCHAR2 := NULL,
   enabled          IN VARCHAR2 := NULL,
   accepted         IN VARCHAR2 := NULL,
   fixed            IN VARCHAR2 := NULL,
   module           IN VARCHAR2 := NULL,
   action           IN VARCHAR2 := NULL)
RETURN NUMBER;

パラメータ

表153-22 PACK_STGTAB_BASELINEファンクションのパラメータ

パラメータ 説明

table_name

SQL計画ベースラインのパック先のステージング表の名前(二重引用符で囲まれていないかぎり、大/小文字区別なし)。

table_owner

ステージング表の所有者の名前。デフォルトのNULLにすると、現行のスキーマが表の所有者になります。

sql_handle

SQLハンドル(大/小文字区別)

plan_name

計画名(大/小文字区別、%ワイルドカードを使用可)

sql_text

SQLテキスト文字列(大/小文字区別、%ワイルドカードを使用可)

creator

SQL計画ベースラインの作成者(二重引用符で囲まれていないかぎり、大/小文字区別なし)

origin

SQL計画ベースラインの起点。'MANUAL-LOAD''AUTO-CAPTURE''MANUAL_SQLTUNE'または'AUTO-SQLTUNE' (大/小文字区別なし)である必要があります。

enabled

'YES'または'NO'(大/小文字区別なし)である必要があります。

accepted

'YES'または'NO'(大/小文字区別なし)である必要があります。

fixed

'YES'または'NO'(大/小文字区別なし)である必要があります。

module

モジュール(大/小文字区別)

action

アクション(大/小文字区別)

戻り値

パックしたSQL計画ベースラインの数。

153.6.18 RESET_EVOLVE_TASKプロシージャ

このプロシージャは、進化タスクを初期状態にリセットします。

タスクから、すべての中間結果が削除されます。現在実行されていないタスクに対してこのプロシージャ呼び出します。

構文

DBMS_SPM.RESET_EVOLVE_TASK  (
   task_name        IN  VARCHAR2);

パラメータ

表153-23 RESET_EVOLVE_TASKプロシージャのパラメータ

パラメータ 説明

task_name

リセットするタスクの識別子。

153.6.19 RESUME_EVOLVE_TASKプロシージャ

このプロシージャは、以前に中断したタスクを再開します。

構文

DBMS_SPM.RESUME_EVOLVE_TASK  (
   task_name        IN  VARCHAR2);

パラメータ

表153-24 RESUME_EVOLVE_TASKプロシージャのパラメータ

パラメータ 説明

task_name

再開するタスクの識別子。

153.6.20 REPORT_AUTO_EVOLVE_TASKファンクション

このプロシージャは、自動進化タスクの実行結果を表示します。

構文

DBMS_SPM.REPORT_AUTO_EVOLVE_TASK  (
   type            IN  VARCHAR2  := TYPE_TEXT,
   level           IN  VARCHAR2  := LEVEL_TYPICAL,
   section         IN  VARCHAR2  := SECTION_ALL,
   object_id       IN  NUMBER    := NULL,
   execution_name  IN  VARCHAR2  := NULL)
 RETURN CLOB;

パラメータ

表153-25 REPORT_AUTO_EVOLVE_TASKファンクションのパラメータ

パラメータ 説明

type

レポートのタイプ。可能な値はTEXTHTMLXMLです。

level

レポートの形式。可能な値はBASICTYPICALALLです。

section

レポート内の特定のセクション。可能な値はSUMMARYFINDINGSPLANSINFORMATIONERRORSALLです。

object_id

単一の計画を表すアドバイザ・フレームワーク・オブジェクトの識別子。NULLの場合、すべてのオブジェクトに対してレポートが生成されます。

execution_name

実行を修飾して識別するための名前。NULLの場合は、最後のタスク実行に関するレポートが生成されます。

戻り値

レポート

153.6.21 REPORT_EVOLVE_TASKファンクション

このプロシージャは、進化したタスクの結果を表示します。

構文

DBMS_SPM.REPORT_EVOLVE_TASK  (
   task_name       IN  VARCHAR2,
   type            IN  VARCHAR2  := TYPE_TEXT,
   level           IN  VARCHAR2  := LEVEL_TYPICAL,
   section         IN  VARCHAR2  := SECTION_ALL,
   object_id       IN  NUMBER    := NULL,
   task_owner      IN  VARCHAR2  := NULL,
   execution_name  IN  VARCHAR2  := NULL)
 RETURN CLOB;

パラメータ

表153-26 REPORT_EVOLVE_TASKファンクションのパラメータ

パラメータ 説明

task_name

レポートするタスクの識別子。

type

レポートのタイプ。可能な値はTEXTHTMLXMLです。

level

レポートの形式。可能な値はBASICTYPICALALLです。

section

レポート内の特定のセクション。可能な値はSUMMARYFINDINGSPLANSINFORMATIONERRORSALLです。

object_id

単一の計画を表すアドバイザ・フレームワーク・オブジェクトの識別子。NULLの場合、すべてのオブジェクトに対してレポートが生成されます。

task_owner

進化タスクの所有者。デフォルトは、現行のスキーマ所有者です。

execution_name

実行を修飾して識別するための名前。NULLの場合は、最後のタスク実行に関するレポートが生成されます。

戻り値

レポート

153.6.22 SET_EVOLVE_TASK_PARAMETERプロシージャ

このプロシージャは、進化タスクのパラメータをVARCHAR2またはNUMBERに設定します

構文

DBMS_SPM.SET_EVOLVE_TASK_PARAMETER  (
   task_name     IN  VARCHAR2,
   parameter     IN  VARCHAR2,
   value         IN  NUMBER);

DBMS_SPM.SET_EVOLVE_TASK_PARAMETER  (
   task_name     IN  VARCHAR2  := NULL,
   parameter     IN  VARCHAR2,
   value         IN  VARCHAR2);

パラメータ

表153-27 SET_EVOLVE_TASK_PARAMETERプロシージャのパラメータ

パラメータ 説明

task_name

進化タスク名

parameter

設定するパラメータの名前。

value

パラメータの新しい値。

タイプVARCHAR2のパラメータの場合、設定可能なパラメータは次のとおりです。

  • ALTERNATE_PLAN_SOURCE: 代替計画を検索するソース(CURSOR_CACHEAUTOMATIC_WORKLOAD_REPOSITORYまたはSQL_TUNING_SETS)を決定します。複数の値は、プラス記号(+)で区切ることで結合できます。デフォルト値は、CURSOR_CACHE+AUTOMATIC_WORKLOAD_REPOSITORYです。

  • ALTERNATE_PLAN_BASELINE: 値EXISTINGを指定すると、既存のSQL計画ベースラインを持つ文に対して代替計画をロードします。値NEWを指定すると、SQL計画ベースラインのない文に代替計画をロードします。その文には新しいベースラインが作成されます。値EXISTING+NEWを指定すると、どちらの場合も代替計画をロードします。

タイプNUMBERのパラメータの場合、設定可能なパラメータは次のとおりです。

  • TIME_LIMIT: グローバルな時間制限(分単位) (デフォルトDBMS_SPM.AUTO_LIMIT)。これは、タスクに許可される合計時間です。

  • ALTERNATE_PLAN_LIMIT: 代替ソースからロードする計画の合計(文とごとではありません)最大数。デフォルト値は、10です。

153.6.23 UNPACK_STGTAB_BASELINEファンクション

このファンクションは、ステージング表からSQL管理ベースにSQL計画ベースラインをアンパック(インポート)します。

構文

DBMS_SPM.UNPACK_STGTAB_BASELINE (
   table_name       IN VARCHAR2,
   table_owner      IN VARCHAR2 := NULL,
   sql_handle       IN VARCHAR2 := NULL,
   plan_name        IN VARCHAR2 := NULL,
   sql_text         IN CLOB     := NULL,
   creator          IN VARCHAR2 := NULL,   origin           IN VARCHAR2 := NULL,
   enabled          IN VARCHAR2 := NULL,
   accepted         IN VARCHAR2 := NULL,
   fixed            IN VARCHAR2 := NULL,
   module           IN VARCHAR2 := NULL,
   action           IN VARCHAR2 := NULL)
RETURN NUMBER;

パラメータ

表153-28 UNPACK_STGTAB_BASELINEファンクションのパラメータ

パラメータ 説明

table_name

SQL計画ベースラインのアンパック元のステージング表の名前(二重引用符で囲まれていないかぎり、大/小文字区別なし)。

table_owner

ステージング表の所有者の名前。デフォルトのNULLにすると、現行のスキーマが表の所有者になります。

sql_handle

SQLハンドル(大/小文字区別)

plan_name

計画名(大/小文字区別、%ワイルドカードを使用可)

sql_text

SQLテキスト文字列(大/小文字区別、%ワイルドカードを使用可)

creator

SQL計画ベースラインの作成者(二重引用符で囲まれていないかぎり、大/小文字区別なし)

origin

SQL計画ベースラインの起点。'MANUAL-LOAD''AUTO-CAPTURE''MANUAL_SQLTUNE'または'AUTO-SQLTUNE'(大/小文字区別なし)である必要があります。

enabled

'YES'または'NO'(大/小文字区別なし)である必要があります。

accepted

'YES'または'NO'(大/小文字区別なし)である必要があります。

fixed

'YES'または'NO'(大/小文字区別なし)である必要があります。

module

モジュール(大/小文字区別)

action

アクション(大/小文字区別)

戻り値

アンパックした計画の数。