解冻一个或多个冻结的查询计划
大纲
代码语言:javascript复制UNFREEZE PLANS [[FROM] UPGRADE] BY ID statement-hash
UNFREEZE PLANS [[FROM] UPGRADE] BY TABLE table-name
UNFREEZE PLANS [[FROM] UPGRADE] BY SCHEMA schema-name
UNFREEZE PLANS [[FROM] UPGRADE]
参数
-
statement-hash
- 查询计划的SQL
语句定义的内部哈希表示,用引号括起来。 偶尔,看起来相同的SQL语句可能有不同的语句散列项。 需要SQL语句的不同代码生成的设置/选项的任何差异都会导致不同的语句散列。 这种情况可能发生在支持不同内部优化的不同客户机版本或不同平台上。 -
table-name
- 现有表或视图的名称。 表名可以是限定的(schema.table
),也可以是非限定的(table
)。 非限定表名接受默认模式名。 -
schema-name
- 现有模式的名称。 该命令解冻指定模式中所有表的所有冻结查询计划。
描述
UNFREEZE PLANS
命令用来解冻冻结的查询计划。
需要冻结查询计划,使用freeze plans
命令。
UNFREEZE PLANS without the FROM UPGRADE子句UNFREEZE all query PLANS with the Plan State Frozen/Explicit
。
使用FROM UPGRADE
子句UNFREEZE PLANS
解冻所有使用Plan State Frozen/ UPGRADE
的查询计划。
这个子句中的FROM
关键字是可选的。
UNFREEZE PLANS
为UNFREEZE
查询计划提供了四种语法形式:
- 指定的查询计划:
UNFREEZE PLANS BY ID
语句哈希。 语句哈希值必须用双引号分隔。 -
UNFREEZE plans BY table table
表名。 可以指定表名或视图名。 如果一个查询计划引用多个表和/或视图,指定这些表或视图中的任何一个都可以解冻查询计划。 - 模式中所有表的所有查询计划:
UNFREEZE plans BY schema schema-name
。 - 当前命名空间中所有表的所有查询计划:
UNFREEZE plans
。
如果一个或多个查询计划被解冻,该命令将发出SQLCODE 0
;
如果没有解冻的查询计划,则发出SQLCODE 100
。
受影响的行数(%ROWCOUNT
)表示未冻结的查询计划数量。
其他接口
可以使用下面的$SYSTEM.SQL
。
用于解冻单个或多个查询计划的语句方法:unfreezstatement()
用于单个计划;
UnfreezeRelation()
用于关联的所有计划(在查询计划中引用的表或视图);
UnfreezeSchema()
用于模式的所有计划;
UnfreezeAll()
用于当前名称空间中的所有计划。
有相应的Freeze方法。