我有一個非常大的只讀數據庫,大約有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