SQL Server 2005 引入 Vardecimal 儲存格式作為企業版與開發版的表級選項,針對 decimal/numeric 欄位在精度需求低於定義精度時進行壓縮。SQL Server 2008 則大幅擴展壓縮技術,Chad Boyd 指出:啟用壓縮後,底層 row/page 格式將全面改變,Storage Engine 成為唯一需識別新格式的元件,架構更為精簡。
允許跨列共用重複資料,採用兩大核心技術:
同一頁面內相同欄位的重複前綴值(如 'Chad'、'Chadwick'、'Chadly')僅儲存一次,其他列透過指標引用。例如 'Chad' 存儲於 CI 結構,後續值以 '1wick'、'1ly' 等形式呈現。
針對前綴壓縮後仍重複的片段(如 '1wick'、'1ly')建立字典,行內值進一步簡化為索引值(如 '2'、'3')。實測可將約 25 位元組的資料壓縮至 17 位元組,節省 30% 以上空間。
每頁獨立壓縮,前綴與字典儲存於頁內。僅當頁面接近滿載時才觸發壓縮,避免半頁壓縮無意義。
CPU 使用率上升,但 I/O 與記憶體佔用下降,整體系統效能通常因 I/O 減少而提升。
採用一般檔案系統壓縮技術,資料庫層級啟用/停用,無其他調整選項。非企業版亦可還原壓縮備份,但壓縮功能可能限企業版專用。
SQL Server 2008 透過行級、頁面級與備份壓縮三重機制,大幅降低儲存成本與 I/O 開銷,為資料倉庫等大量資料工作負載帶來顯著效能提升。