FORCE_DDL_EXEC 环境选项

使用 SET ENVIRONMENT 语句的 FORCE_DDL_EXEC 环境选项来防止已经在表上已打开或已锁定的其他事务参与 ALTER FRAGMENT ON TABLE 操作。

当启用 FORCE_DDL_EXEC 环境选项时,服务器还通过执行 ALTER FRAGMENT ON TABLE 操作的会话来关闭回滚期间的持有游标。

FORCE_DDL_EXEC 选项可有任何下列值:

例如,当发出 ALTER FRAGMENT ON TABLE 语句时,要启用 FORCE_DDL_EXEC 环境选项来操作 100 秒,请指定:
SET ENVIRONMENT FORCE_DDL_EXEC '100';

重要:当您使用 FORCE_DDL_EXEC 环境选项时,为了获得排他访问和锁,还使用 SET LOCK MODE TO WAIT 语句来为服务器封杀任何事务指定一个时间的期间。如果您运行 SET LOCK MODE TO WAIT 而未指定时间量,则 FORCE_DDL_EXEC 将对更改分片操作不起作用。要获取更多信息,请参阅 SET LOCK MODE 语句

当您启用 FORCE_DDL_EXEC 环境选项时,服务器支持多个会话执行 ALTER FRAGMENT ON TABLE 操作。当启用 FORCE_DDL_EXEC 选项时,如果两个会话在一个共有的表上执行 ALTER FRAGMENT ON TABLE,则第二个会话会出错。如果在表上正在发生另一 ALTER 操作,则带有启用的 FORCE_DDL_EXEC 环境选项的 ALTER FRAGMENT ON TABLE 操作会出错。

启用 FORCE_DDL_EXEC 选项的前提是:

在您完成带有启用的 FORCE_DDL_EXEC 环境选项的 ALTER FRAGMENT ON TABLE 操作之后,您可关闭 FORCE_DDL_EXEC 环境选项。

onshowaudit 实用程序显示改变分片事件代码(ALFR),标识当启用了 FORCE_DDL_EXEC 环境选项时的改变分片事件。