新聞中心
導(dǎo)讀:SQLServer2008在之前版本的功能上又進一步增強了數(shù)據(jù)壓縮功能。SQLServer2008現(xiàn)在支持行壓縮和頁面壓縮兩種選項,數(shù)據(jù)壓縮選項可以在以下對象上啟用:

網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)建站!專注于網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、微信小程序開發(fā)、集團企業(yè)網(wǎng)站建設(shè)等服務(wù)項目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了赫章免費建站歡迎大家使用!
未創(chuàng)建聚簇索引的表
創(chuàng)建聚簇索引的表
非聚簇索引(對表設(shè)置壓縮選項不會影響到該表上的非聚簇索引,因此聚簇索引的壓縮需要單獨設(shè)置)
索引視圖
分區(qū)表和分區(qū)索引中的單個分區(qū)
為什么需要數(shù)據(jù)壓縮
首先可能需要討論的問題就是為什么在存儲成本不斷降低的今天,微軟還要煞費苦心地在SQLServer中實現(xiàn)并且不斷改進數(shù)據(jù)壓縮技術(shù)呢?
盡管存儲成本已經(jīng)不再是傳統(tǒng)意義上的首要考慮因素,但是這并不代表數(shù)據(jù)庫尺寸不是一個問題,因為數(shù)據(jù)庫尺寸除了會影響到存儲成本之外,還極大地關(guān)聯(lián)到管理成本和性能問題。
首先我們來討論為什么會有管理成本的問題?因為數(shù)據(jù)庫需要備份,數(shù)據(jù)庫的尺寸越大,那么備份時間就會越長,當(dāng)然另外一點就是消耗的備份硬件成本也會隨之提高(包括需要的備份介質(zhì)成本和為了滿足備份窗口而需要更高級的備份設(shè)備帶來的采購成本),還有一種管理成本就是數(shù)據(jù)庫的維護成本,例如我們經(jīng)常需要完成的DBCC任務(wù),數(shù)據(jù)庫尺寸越大,我們就需要更多的時間來完成這些任務(wù)。
接著我們再看看性能問題。SQLServer在掃描磁盤讀取數(shù)據(jù)的時候都是按照數(shù)據(jù)頁為單位進行讀取的,因此如果一張數(shù)據(jù)頁中包含的數(shù)據(jù)行數(shù)越多,SQLServer在一次數(shù)據(jù)頁IO中獲得的數(shù)據(jù)就會越多,這樣也就帶來了性能的提升。
***考慮存儲的成本,按照原先SQL Server2005SP2中vardecimal的壓縮數(shù)據(jù)為例,30%的空間節(jié)省也就意味著30%的存儲成本,而按照SQLServer2008當(dāng)前放出的測試數(shù)據(jù),采用新的數(shù)據(jù)壓縮技術(shù)可以達到2X-7X的存儲率,再加上如果企業(yè)要考慮容災(zāi)而增加的存儲空間,這樣節(jié)省的存儲硬件成本也將是想當(dāng)可觀的。
如何使用數(shù)據(jù)壓縮
SQL Server 2008中的壓縮選項可以在創(chuàng)建表或索引時通過Option進行設(shè)置,例如:
CREATETABLETestTable(col1int,col2varchar(200))WITH(DATA_COMPRESSION=ROW);
如果需要改變一個分區(qū)的壓縮選項,則可以用以下語句:
ALTERTABLETestTableREBUILDPARTITION=1WITH(DATACOMPRESSION=PAGE);
如果需要為分區(qū)表的各個分區(qū)設(shè)置不同的壓縮選項,可以使用以下的語句:(SQLServer2008可以對不同的分區(qū)使用不同的壓縮選項,這一點對于數(shù)據(jù)倉庫應(yīng)用是非常重要的,因為數(shù)據(jù)倉庫的事實表通常都會有一個或數(shù)個熱分區(qū),這些分區(qū)中的數(shù)據(jù)經(jīng)常需要更新,為了避免數(shù)據(jù)壓縮給這些分區(qū)上的數(shù)據(jù)更新帶來額外的處理載荷,可以對這些分區(qū)關(guān)閉壓縮選項)
文章題目:SQLServer2008中的數(shù)據(jù)壓縮功能
文章起源:http://m.5511xx.com/article/djegegj.html


咨詢
建站咨詢
