【问题标题】:Stopping Clustered Index script停止聚集索引脚本
【发布时间】:2012-02-13 14:02:05
【问题描述】:

我有一个 loooooong 运行脚本,我们在 77M 行 - 20GB 表上生成聚集索引。

我需要查询这些数据,所以我想停止索引生成并在晚上恢复它。

KILLProcessId 可以吗?

【问题讨论】:

    标签: sql-server sql-server-2008-r2 clustered-index kill-process


    【解决方案1】:

    杀死 PID 会导致事务回滚。

    这样做应该没有什么坏处,但是回滚会很痛苦。

    没有办法暂停它并稍后从你离开的地方继续。

    【讨论】:

      【解决方案2】:

      SQL Server 应该能够很好地响应终止任何进程。但是,可能需要一段时间才能自行清理。例如,如果你杀死一个大的更新查询,它将不得不回滚事务。对于在索引构建中,它不应该有这样的问题并且应该比较快地返回。重点是,只要你让杀戮结束而不做一些剧烈的事情,比如断电,你应该没问题。

      【讨论】:

      • +1 聚集索引构建回滚可能需要一段时间
      • @ChrisShain 我之所以选择KILL 是为了访问数据。使用ROLLBACK,我最终将花费我本来可以花在创建索引上的时间。我想我在这里学到了很好的一课 - 在正确的时间创建聚集索引。
      • @DonDickinson 这不是常规索引 - 它是 clustered
      • @RajMore 这就是我的想法,这就是我提到它的原因。 far 创建聚集索引的最佳方法是创建一个具有相同结构和定义的索引的新表,BCP 将旧表中的数据(以相同的顺序作为聚集索引,如果可能的话),然后将其 BCP 到新表中。
      猜你喜欢
      • 2013-08-07
      • 2021-01-14
      • 2011-06-11
      • 2011-12-16
      • 2011-02-11
      • 1970-01-01
      相关资源
      最近更新 更多