我有一个非常大的只读数据库,大约有30个表。 DB的总大小约为13TB,最大的表大约为4.5TB。 (大小为1TB +的表格有10个左右,然后是几个较小的表格。)目前,数据库被分成8个数据文件,全部在PRIMARY文件组中。在SQL 2014+ VLDB上PAGE数据压缩后回收磁盘空间
我已经在某些大型表上应用了PAGE级数据压缩,它将DB的大小减少到了10TB左右,但是,我真的想要回收磁盘上的一些空间。 (这个数据集是只读的 - 它永远不会增长。)
我意识到缩小文件会导致大量的碎片,这可以通过重建所有索引来解决,但重建索引可能会导致文件再一次增长...啊!
导致我的问题(一个或多个)有关如何压缩后回收磁盘空间:
- 是我复制所有表/数据分成较小的文件,新文件组,删除原始表唯一的解决方案,然后清空/放下或缩小原始文件?
- 是否有人知道任何脚本或工具,将帮助我决定我需要的最佳文件大小?
- 请问最好的做法是
- 创建与聚集索引+ PAGE压缩新文件组新表
- 插入/从原来的表中选择插入到新表(带TF 610和TABLOCK)
- 滴原表
- 创建新的文件组
此非聚集索引看起来像是一个需要很长时间的大事业,因为我将不得不基本上重新创建我的整个数据库......再次。有没有更简单的解决方案,我错过了?
另外,在新的FG中创建新的聚簇索引与DROP EXISTING之间是否存在性能差异,或者是在新FG上创建CLI之后只是执行INSERT..SELECT? – capnsue