SET CURRENT MDC ROLLOUT MODE 语句
SET CURRENT MDC ROLLOUT MODE 语句向 CURRENT MDC ROLLOUT MODE 专用寄存器赋值。 该值指定要对多维集群 (MDC) 表的限定 DELETE 语句执行的转出清除类型。
调用
此语句可以嵌入在应用程序中,也可通过动态 SQL 语句来发出。 它是可动态准备的可执行语句。
授权
不需要执行任何操作。
语法
描述
- NONE
- 指定不使用删除操作期间的 MDC 转出优化。 处理 DELETE 语句的方式与处理不符合转出条件的 DELETE 语句的方式相同。
- IMMEDIATE
- 指定如果 DELETE 语句符合条件,将使用 MDC 转出优化。 如果表具有 RID 索引,那么在删除处理期间将立即更新索引。 在事务落实后,可复用已删除的块。
- DEFERRED
- 指定如果 DELETE 语句符合条件,将使用 MDC 转出优化。 如果表具有 RID 索引,那么会将索引更新延迟到事务落实之后。 通过此选项,删除处理速度更快,使用的日志空间也更少,但在索引更新完成后,已删除的块才可供复用。 host-variable
- 类型为 VARCHAR 的变量。 host-variable 的长度必须小于或等于 17 个字节 (SQLSTATE 42815)。 主变量的值必须是 左对齐字符串 one of 'NONE' , 'IMMEDIATE' 或 'DEFERRED' (不区分大小写)。 如果 host-variable 具有关联的指示符变量,那么该指示符变量的值不得指示空值 (SQLSTATE 42815)。
注意
- 符合转出处理条件的后续 DELETE 语句将遵循 CURRENT MDC ROLLOUT MODE 专用寄存器的设置。 当前执行的部分不受此专用寄存器的更改影响。
- 如果执行语句的工作单元回滚,那么不会回滚执行 SET CURRENT MDC ROLLOUT MODE 语句的效果。
- 运行 SET CURRENT MDC ROLLOUT MODE 语句后, MDC 表转出的行为会更改。 当发生下列其中一种情况时, MDC 表转出的行为将返回到注册表变量 DB2_MDC_ROLLOUT 设置的配置:
- 与数据库的连接/会话已终止。
- 输入了 CONNECT RESET。
- 输入 SET CURRENT MDC ROLLOUT MODE NONE。
- 具有分区 RID 索引的数据分区 MDC 表不支持 DEFERRED 方式。 仅支持 NONE 和 IMMEDIATE 方式。 如果 DB2_MDC_ROLLOUT 注册表变量设置为 DEFER,或者 CURRENT MDC ROLLOUT MODE 专用寄存器设置为 DEFERRED 以覆盖 DB2_MDC_ROLLOUT 设置,那么清除转出类型将为 IMMEDIATE。
如果 MDC 表仅存在非分区 RID 索引,那么支持执行延迟索引清除转出。
示例
为符合转出处理条件的下一个 DELETE 语句指定延迟清除行为。
SET CURRENT MDC ROLLOUT MODE IMMEDIATE