Performance
可以收縮數據庫提高性能
昨天我收到一封來自我們的供應商的郵件,提到他們的應用程序存在性能問題。
我還不知道問題是什麼,但他們提出的解決方案是縮小數據庫(因為有很多可用空間)。據我所知,這不會導致性能提升,但顯然他們在應用到其他客戶時使用這種方法取得了成功。
我認為縮小發生的方式是將頁面從文件的後部移動到文件的前部,就像這樣壓縮數據庫並導致大量碎片。
範圍掃描是否有可能利用壓縮數據庫?
或者還有其他一些可以從縮小數據庫中受益的邊緣案例嗎?
強烈的一般建議當然是永遠不要收縮。
不過,這裡的問題是:縮小可以提高性能嗎?
也許。在每個文件的開頭合併所有使用的頁面可能有利於加速讀取,並在多個級別(包括儲存層)具有良好的記憶體效果。此外,shrink 會從堆表中刪除任何空頁而不是移動它們,因此這可能會直接提高堆表掃描性能。
Shrink 還檢查是否應重新壓縮 b 樹或堆頁面,這可能與正在使用數據壓縮相關。Shrink 也從不生成轉髮指針,因此縮小堆頁面會導致“未轉發”和存根刪除。
最好還是採取更有效的措施來解決導致績效不佳的具體原因。這需要了解問題並知道如何解決它,而不是(盲目地)嘗試以前似乎可行的事情。