基于湖库一体架构,统一管理结构化、半结构化与非结构化等多模态数据,一个系统承载事务处理、实时分析与 AI 工作负载。
ALTER_SQL_PLAN_BASELINE
更新时间:2026-07-15 20:42:46
ALTER_SQL_PLAN_BASELINE 函数用于修改基线中一个或一组计划的属性。返回值表示被修改的基线数量。
语法
DBMS_SPM.ALTER_SQL_PLAN_BASELINE (
sql_handle IN VARCHAR,
plan_name IN VARCHAR := NULL,
attribute_name IN VARCHAR,
attribute_value IN VARCHAR
)
RETURN PLS_INTEGER;
参数说明
| 参数名称 | 说明 |
|---|---|
| database_name | 数据库名称,仅 MySQL 模式下需要指定该参数。 |
| sql_handle | SQL 的标识符,也就是 SQL_ID。 |
| plan_name | 计划的名称,也就是 Plan Hash Value。如果值为 NULL,表示接受一个 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;
/