我有一个在从 SQL Server 2005 升级期间刚刚复制的 MDF 文件;现在我已向该 FILEGROUP 添加了 12 个 NDF 文件。
理想情况下,我会使用 DBCC SHRINKFILE (File1, EMPTYFILE) 来重新平衡;但速度却出奇地慢。我想将 70Gb 以更易于管理的块形式移动;但是执行不使用 EMPTYFILE 的 DBCC SHRINKFILE 实际上不会将数据推送到其他文件中;而 EMPTYFILE 会一直运行,直到清空文件。
关于如何更逐步地完成这一任务,有什么建议吗?
谢谢,
答案1
您可以重建索引(碎片整理不会有任何帮助,因为它只会移动同一文件内的数据)。如果这还不够好,那么请创建另一个文件组,并将群集索引重建到该新文件组中。这会将表移动到新文件组。然后将它们重新重建回原始文件组,这会将它们移回。对非群集索引执行相同操作。
答案2
我相信,如果您重新索引数据,您将获得更好的结果。只要您的表有聚集索引,这将导致 SQL Server 尝试移动数据。您可以手动一次重新索引一个表,或者等到下一个重新索引维护窗口。我会加倍确保其他文件有足够的空间;您不想为此依赖自动增长。