ALTER_SQL_PLAN_BASELINE関数は、ベースライン内の1つまたは複数の計画のプロパティを変更するために使用されます。戻り値は変更されたベースラインの数を示します。
構文
DBMS_SPM.ALTER_SQL_PLAN_BASELINE (
database_name VARCHAR(65535),
sql_handle VARCHAR(65535),
plan_name VARCHAR(65535) DEFAULT NULL,
attribute_name VARCHAR(65535),
attribute_value VARCHAR(65535)
)
RETURN DECIMAL;
パラメータの説明
| パラメータ名 | 説明 |
|---|---|
| database_name | データベース名。このパラメータはMySQLモードでのみ指定する必要があります。 |
| sql_handle | SQLの識別子、すなわちSQL_IDです。 |
| plan_name | プランの名前、すなわちPlan Hash Valueです。値がNULL場合、1つのSQLに対して進化中のすべてのプランを受け入れることを意味します。 |
| attribute_name | プランの属性名。属性の説明を参照してください。 |
| attribute_value | プランの属性値。属性の説明を参照してください。 |
プロパティの説明
| プロパティ名 | 推奨されるプロパティ値 | 説明 |
|---|---|---|
| enabled | 'YES'または'NO' | 'YES'は、計画ベースラインが有効であることを示します。最終的に計画ベースラインが使用されるかどうかは、受け入れられるかどうかによって決まります。 |
| fixed | 'YES'または'NO' | 'YES'は、現在の計画ベースラインを優先的に使用し、自動進化を行わないことを示します。 |
| autopurge | 'YES'または'NO' | 'YES'は、計画ベースラインが一定期間使用されない場合に自動的に廃棄されることを示します。'NO'は、計画ベースラインが決して廃棄されないことを示します。 |
| plan_name | 最長30文字の文字列。 | プランの名前。 |
| description | 最長500バイトの文字列。 | プランの説明。 |
例
特定のPlan Baselineを固定化した後、そのSQLはその計画のみを使用します。
DECLARE
v_alter_plans NUMBER;
BEGIN
v_alter_plans := DBMS_SPM.ALTER_SQL_PLAN_BASELINE(
sql_handle => '529F6E6454EF579C7CC265D1F6131D70',
plan_name => '3388268709115914355',
attribute_name => 'fixed',
attribute_value => 'YES' );
END;
/