将主键移到文件组(SQL Server 2012)


14

如何将群集的主键移动到新文件组?我已经找到了可能的“算法”,但是效率很低:

  1. 删除非集群索引(要求对它们进行重新排序和重建)
  2. 删除聚簇索引(要求使用整个表)
  3. 创建新的主键约束(巨大的排序操作)
  4. 创建所有非聚集索引(需要排序和写入)

有没有更有效的方法?这是非常低效的,并且由于弱服务器上的表大小为50GB,将花费很长时间。

是否没有办法跳过所有这些,只对新文件组进行重建?那将不需要任何数据排序。

Answers:


24
CREATE UNIQUE CLUSTERED INDEX Your_PK_Name
    ON YourTable(YourColumnList)
WITH (DROP_EXISTING =  ON )
ON [YourOtherFileGroup]

尽管在语法中未提及逻辑PK属性,但仍保留了该属性。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.