本文主要介紹sql server數(shù)據(jù)庫壓縮(sql2000數(shù)據(jù)庫壓縮),下面一起看看sql server數(shù)據(jù)庫壓縮(sql2000數(shù)據(jù)庫壓縮)相關(guān)資訊。
sql server 2005 sp2為我們帶來了vardecimal函數(shù)。作為一種新的存儲格式,vardecimal引入了小數(shù)和數(shù)值數(shù)據(jù)類型。vardecimal存儲格式允許將小數(shù)和數(shù)值數(shù)據(jù)類型存儲為可變長度的列。該函數(shù)使原來的定長十進(jìn)制數(shù)據(jù)能夠以可變格式存儲在數(shù)據(jù)文件中。據(jù)說這個功能可以為一個典型的數(shù)據(jù)倉庫節(jié)省30%的空間,sql server 2008還可以進(jìn)一步完善數(shù)據(jù)壓縮功能。此basis.sql server 2008現(xiàn)在支持兩個選項(xiàng):行壓縮和網(wǎng)頁壓縮,并且可以為以下對象啟用數(shù)據(jù)壓縮選項(xiàng):1 .不要創(chuàng)建聚集索引的表2。創(chuàng)建聚集索引表iii。非聚集索引(表設(shè)置壓縮選項(xiàng)不影響表上的非聚集索引,需要單獨(dú)設(shè)置聚集索引的壓縮)4。索引視圖5。在分區(qū)索引中對分區(qū)表和單個分區(qū)使用數(shù)據(jù)壓縮的意義:首先,讓 讓我們來看看為什么存儲成本在不斷下降。如今,微軟也在嘗試在sql server中實(shí)現(xiàn)和改進(jìn)數(shù)據(jù)壓縮技術(shù)。雖然傳統(tǒng)意義上的存儲成本不再是首要考慮的因素,但這并不意味著數(shù)據(jù)庫大小不是問題,因?yàn)閿?shù)據(jù)庫大小不僅影響存儲成本,還關(guān)系到管理成本和性能。為什么會有管理成本問題?因?yàn)榇笠?guī)模的數(shù)據(jù)庫備份,備份時間會比較長。當(dāng)然,備份硬件的消耗也會增加(包括備份介質(zhì)的成本、購買成本以及需要將更先進(jìn)的備份設(shè)備帶到備份窗口)。管理數(shù)據(jù)庫的維護(hù)成本是有成本的。例如,我們經(jīng)常需要完成dbcc任務(wù)。數(shù)據(jù)庫越大,我們完成這些任務(wù)所需的時間就越多。那么讓我們 ■掃描磁盤的性能。讀取數(shù)據(jù)時,根據(jù)數(shù)據(jù)讀取數(shù)據(jù)和頁面單元。如果把數(shù)據(jù)線納入io,一個數(shù)據(jù)頁會有更多的數(shù)據(jù)頁,所以會帶來性能提升。最后考慮存儲成本,按照原來數(shù)據(jù)壓縮vardecimal的sql s測試數(shù)據(jù),新的數(shù)據(jù)壓縮技術(shù)可以達(dá)到2x7x的存儲速率,企業(yè)是否應(yīng)該考慮容災(zāi)增加存儲空間,也會節(jié)省存儲硬件的成本。使用數(shù)據(jù)壓縮方法:在創(chuàng)建表或索引時,可以按下sql server 2008中的壓縮選項(xiàng)。設(shè)置,比如:復(fù)制代碼如下:創(chuàng)建數(shù)據(jù)表(col1 int,col2 varchar(200))和(data _ compression = row);如果需要改變分區(qū)的壓縮選項(xiàng),可以使用以下語句:復(fù)制代碼如下:修改表數(shù)據(jù)重建分區(qū)= 1(數(shù)據(jù)壓縮= page);如果分區(qū)表需要為每個分區(qū)設(shè)置不同的壓縮選項(xiàng),可以使用以下語句:(sql server 2008對于數(shù)據(jù)倉庫的應(yīng)用使用不同的分區(qū)和不同的壓縮選項(xiàng)是非常重要的,因?yàn)閿?shù)據(jù)倉庫的事實(shí)表通常有一個或幾個熱分配,這些分區(qū)的數(shù)據(jù)經(jīng)常需要更新,以避免數(shù)據(jù)壓縮數(shù)據(jù)的更新處理負(fù)載。附加壓縮選項(xiàng)可以關(guān)閉這些分區(qū))復(fù)制代碼如下:在ps1(col1)中創(chuàng)建一個partitionedtable(col1 int,col 2 varchar(200))(with data _ compression = partition(1),in partition data _ compression = pages(2到4));如果是為索引設(shè)置壓縮選項(xiàng),可以使用:復(fù)制代碼如下:創(chuàng)建數(shù)據(jù)索引ix_testtable_col1(col1)和(data _ compression = rows);如果修改索引的壓縮選項(xiàng),可以使用:復(fù)制代碼如下:將數(shù)據(jù)指標(biāo)ix_testtable_col1改為rebuild(data _ compression = row);sql server 2008還提供了sp _ estimate _ data _ compression _ savings存儲過程來幫助dba估計對象的大小,并在壓縮選項(xiàng)后激活它。數(shù)據(jù)壓縮的原理:對于行壓縮,sql server 2008使用以下三種方法來節(jié)省存儲空間:減少與記錄相關(guān)的元數(shù)據(jù)開銷。這些元數(shù)據(jù)是關(guān)于列、列長度和偏移量的信息。在某些情況下,元數(shù)據(jù)開銷可能比舊的存儲格式更大。它對數(shù)值類型(例如,整數(shù)、小數(shù)、浮點(diǎn))和數(shù)值類型(例如,日期、時間和貨幣)采用可變長度存儲格式。它以不存儲空字符的可變長度格式存儲固定長度的字符串。對于頁面壓縮,sql server 2008在數(shù)據(jù)頁上交替使用。1。線壓縮2。前綴壓縮三。使用數(shù)據(jù)壓縮進(jìn)行字典壓縮的注意事項(xiàng):雖然sql server 2008的數(shù)據(jù)壓縮功能很有價值,但是還是有一些值得注意的問題:數(shù)據(jù)壓縮功能只有企業(yè)版和開發(fā)版才有。數(shù)據(jù)壓縮允許數(shù)據(jù)頁存儲更多的數(shù)據(jù)行,但不會改變單行數(shù)據(jù)的最大限制8060字節(jié)。當(dāng)...的時候在集表上創(chuàng)建聚集索引時,聚集索引默認(rèn)為原始表上的壓縮選項(xiàng)。在沒有聚集索引的表上設(shè)置頁壓縮時,只有在以下情況下才能達(dá)到頁壓縮的實(shí)際效果:1。使用bulk insert語法將數(shù)據(jù)添加到表中。2。數(shù)據(jù)入到表中,并添加到…和(tablock)語法iii中。執(zhí)行表的修改…使用page compression option rebuild命令更改表中不帶聚集索引的壓縮選項(xiàng)將導(dǎo)致表中的所有非聚集索引被重新生成,因?yàn)檫@些聚集索引的數(shù)據(jù)行地址已被更改。更改壓縮選項(xiàng)所需的臨時空間量與創(chuàng)建索引所需的空間量相同。所以對于分區(qū)表,我們可以逐個設(shè)置壓縮選項(xiàng),減少臨時空間的需求壓力。因?yàn)閟ql server 2008的數(shù)據(jù)壓縮技術(shù)是vardecimal sql server 2005 sp2的超集,所以在設(shè)置數(shù)據(jù)壓縮時不需要保留vardecimal。當(dāng)然,為了保持向后兼容性,sql server 2008在當(dāng)前版本中仍然保留了vardecimal sql server 2008,但是在下一個版本中,可以放棄vardecimal選項(xiàng),所以要盡快將這些設(shè)置改為數(shù)據(jù)庫的數(shù)據(jù)壓縮設(shè)置。sql server 2008的壓縮選項(xiàng)是工作在存儲引擎層,因?yàn)檫@個特性的其他部分是透明的,所以當(dāng)我們使用大容量數(shù)據(jù)到sql server的加載模式時,會大大增加cpu的工作量,同時在導(dǎo)出外部表數(shù)據(jù)的壓縮文件時,可能會比原來占用更多的空間。相信在這里,朋友們對sql server 2008中的數(shù)據(jù)壓縮技術(shù)有了更全面的了解。
了解更多sql server數(shù)據(jù)庫壓縮(sql2000數(shù)據(jù)庫壓縮)相關(guān)內(nèi)容請關(guān)注本站點(diǎn)。