1
我們有一個龐大的數據庫(300GB),其中大部分空間都被一張大桌子佔據。這個表有許多列定義爲float,每個8字節。不過最近我們意識到,只需要4個字節,我們必須改變每一列的大小,所以我們必須像這樣運行一個查詢,每列(約6列):何時收縮:縮小一列的大小後還是縮小所有列的大小後?
alter table [HugeTable] alter column [Col] float(1)
我的問題是:如何什麼時候應該在縮小柱尺寸後回收空間?對於什麼時候我們有兩種可能性的問題:在每個更改表(缺點:需要更長時間)之後,或者在所有列都減少之後。對於我們的想法如何的問題:數據庫收縮,聚簇索引重建。在我們的案例中,DBCC CLEANTABLE也會有用嗎?從我所能理解的情況來看,它僅適用於可變列類型。
謝謝!
編輯:最後我們決定不使用這種方法。相反,我們正在創建一個具有新結構並逐漸移動數據的表格。
你會建議什麼樣的維護? –
收縮數據庫,重建索引,檢查一致性等所有事情,你可能在每週(?)維護工作...... –
不幸的是,由於數據庫的大小,我們不能定期運行那些:(一致性檢查持續13個小時(!!!),所以我們真的需要儘可能快地保持它。重建索引是否足夠了?我知道縮小並不是完全推薦的 –