缩小仅包含堆的数据库后,我是否需要修复碎片?

Dat*_*ill 0 sql-server fragmentation

我有一个 1 TB 的数据库,其中包含数百个季度存档表,我希望删除任何早于 5 个财务季度的表,这将释放约 600 GB 的空间。提供一个表架构的示例:

myTable myTable_Q4_21 myTable_Q3_21 myTable2_Q4_21 myTable2_Q3_21

我想知道在删除这些表并缩小数据库以回收新释放的空间后,是否需要 ALTER..REBUILD 每个剩余的 HEAP 表或在每个表上放置一个 CX 并随后将其删除。

Dav*_*oft 6

需要吗?不会。但请考虑将它们替换为具有存档压缩功能的聚集列存储表。它们将被整理碎片、更小并且扫描速度更快。