将索引移动到其他文件组

时间:2012-05-17 15:20:29

标签: sql-server sql-server-2008 tsql

是否有一个很好的脚本,它会生成脚本以将群集和非群集索引(+堆)移动到其他文件组?

在完美世界它看起来像过程,其中输入是表名,新文件组名称为字符串(因此也可以给出具有列的分区模式)和可选索引名称(如果没有给出,然后移动所有索引或堆)。该脚本将在SSMS的消息面板中输出结果(脚本),因此可以在运行前查看。 它还会考虑企业版本功能(ONLINE),并为集群索引制作好的脚本,不能删除和重新创建,如下所示:

CREATE unique clustered INDEX PK_TableName
On dbo.TableName
(
    [ColumnName] ASC
)
WITH (DROP_EXISTING=ON, ONLINE=ON)
ON FileGroup

它还会考虑包括列,过滤索引。

1 个答案:

答案 0 :(得分:3)

https://dba.stackexchange.com/questions/16708/moving-large-number-of-tables-to-different-filegroups

Generate CREATE scripts for a list of indexes

您只需按一下输出一点就可以包含新的文件组名称和“drop existing”子句......