(从 StackOverflow 手动移动它,因为它确实属于这里。)
我们有一个生产 SQL Server Enterprise 数据库,其中包含几 TB 的数据。我们需要将数据拆分为多个文件。预生产环境中的测试进展顺利,但在收缩期间数据库的性能会下降。我们希望提前解决生产系统中文件收缩/拆分的潜在问题,因为我们有大客户使用 SLA,这限制了我们进行显着影响性能的更改的能力。
SQL Server 收缩/拆分功能是否能够限制在转换到多个文件期间收缩/拆分产生的开销?或者,我们是否有能够实现相同限制能力的路径。或者,是否可以采取一种在给定维护窗口期间逐渐拆分/缩小文件的方法?
您无需缩小即可将数据迁移到多个文件。
只需将新文件添加到文件组中,然后逐个重建每个表以移动数据。
假设您以最佳方式调整文件大小,比例填充算法将平等地平衡文件之间的数据。有关详细信息,请参阅此Microsoft 文档页面。
使用该
ALTER TABLE ... REBUILD;
命令跨文件组中的所有可用文件迁移数据。您甚至可以使用该命令将表迁移到另一个文件组。该命令的 Microsoft Docs 在这里