【发布时间】:2012-02-13 14:02:05
【问题描述】:
我有一个 loooooong 运行脚本,我们在 77M 行 - 20GB 表上生成聚集索引。
我需要查询这些数据,所以我想停止索引生成并在晚上恢复它。
KILLProcessId 可以吗?
【问题讨论】:
标签: sql-server sql-server-2008-r2 clustered-index kill-process
我有一个 loooooong 运行脚本,我们在 77M 行 - 20GB 表上生成聚集索引。
我需要查询这些数据,所以我想停止索引生成并在晚上恢复它。
KILLProcessId 可以吗?
【问题讨论】:
标签: sql-server sql-server-2008-r2 clustered-index kill-process
杀死 PID 会导致事务回滚。
这样做应该没有什么坏处,但是回滚会很痛苦。
没有办法暂停它并稍后从你离开的地方继续。
【讨论】:
SQL Server 应该能够很好地响应终止任何进程。但是,可能需要一段时间才能自行清理。例如,如果你杀死一个大的更新查询,它将不得不回滚事务。对于在索引构建中,它不应该有这样的问题并且应该比较快地返回。重点是,只要你让杀戮结束而不做一些剧烈的事情,比如断电,你应该没问题。
【讨论】:
KILL 是为了访问数据。使用ROLLBACK,我最终将花费我本来可以花在创建索引上的时间。我想我在这里学到了很好的一课 - 在正确的时间创建聚集索引。
clustered