標籤:
當資料庫是比較大的,而當你想備份,我們可以啟動Database Backup壓縮。這項由於備份檔案比較小的壓縮,所以整個備份的更快的速度,同時還低了磁碟空間的消耗。
當然還有一方面。肯定會添加cpu的消耗。只是一般的server都是多核。所以實際上對系統不會有大的影響。
事實上。不僅能夠在備份的時候壓縮,在SQL Server 2008中。我們還能夠對錶和索引進行壓縮,以下通過壓縮前、壓縮後的比較。來展示SQL Server 2008強大的表及索引的壓縮功能。
這裡在公司測試資料庫找了一個中型的表,共同擁有943萬多條記錄。
1、壓縮前表的大小
SP_SPACEUSED 'TB_WCB'/*name rows reserveddata index_sizeunusedTB_WCB 9439661 746016 KB412216 KB329944 KB3856 KB*/
2、壓縮表
這裡啟用的是row 層級的壓縮
ALTER TABLE TB_WCBrebuildWITH (DATA_COMPRESSION =ROW)
3、壓縮後的表大小
SP_SPACEUSED 'TB_WCB'/*name rows reserveddata index_sizeunusedTB_WCB 9439661 497784 KB167168 KB328120 KB2496 KB*/
4、表壓縮前後的對照
壓縮前資料大小是412M(data欄位的值就是表資料的大小,而index_size是索引的大小,兩者是不同的),而在壓縮後是 167M,壓縮後表的大小僅僅是原來表的40%,效果非常明顯,並且因為這個表中大部分欄位僅僅是id,相對而言反覆值還不算多的,假設反覆值很多其它,那麼壓縮效果會更好。
可是,我們看到,索引的大小(index_size)基本上沒什麼變化。於是我們繼續進行索引的壓縮:
5、壓縮索引
alter index IDX_TB_WCB_ID on TB_WCBrebuildwith(data_compression=row)
6、索引壓縮後的對照
SP_SPACEUSED 'MS_VISIT_QST_OPT'/*name rows reserveddata index_sizeunusedTB_WCB 9439661 317208 KB167168 KB149872 KB168 KB*/
我們發現,索引壓縮前大小是329M。而在壓縮後是 149M,壓縮比例為45%。效果也非常明顯。
總結:
通過表和索引的壓縮。我們能夠減小表佔用的磁碟空間,這個僅僅是一部分,更重要的是,讀取相同多的資料,僅僅須要讀取更少的資料頁,也就是僅僅須要更少的IO。那麼讀取速度肯定會更快,並且因為佔用的空間小了,也能夠讓很多其它的數根據網頁緩衝在儲存空間,進一步提高系統的整體效能。
著作權聲明:本文博主原創文章。部落格,未經同意不得轉載。
【SQL Server效能最佳化】SQL Server 2008該表壓縮