最新文章專題視頻專題問答1問答10問答100問答1000問答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
當(dāng)前位置: 首頁 - 科技 - 知識百科 - 正文

SQLSERVER2008的數(shù)據(jù)壓縮

來源:懂視網(wǎng) 責(zé)編:小采 時間:2020-11-09 08:20:56
文檔

SQLSERVER2008的數(shù)據(jù)壓縮

SQLSERVER2008的數(shù)據(jù)壓縮:一、 數(shù)據(jù) 庫版本 數(shù)據(jù) 壓縮 在Sql Server 2008上才支持,2005不行,并且還要是企業(yè)版。我常常忘了這一點(diǎn),在2005的Studio上鬧出語法錯誤的狀況,折騰浪費(fèi)了好一陣才醒悟過來。 二、 壓縮 狀況 大約可以節(jié)省20%-50%的空間,并且行 壓縮 和頁 壓縮 有所
推薦度:
導(dǎo)讀SQLSERVER2008的數(shù)據(jù)壓縮:一、 數(shù)據(jù) 庫版本 數(shù)據(jù) 壓縮 在Sql Server 2008上才支持,2005不行,并且還要是企業(yè)版。我常常忘了這一點(diǎn),在2005的Studio上鬧出語法錯誤的狀況,折騰浪費(fèi)了好一陣才醒悟過來。 二、 壓縮 狀況 大約可以節(jié)省20%-50%的空間,并且行 壓縮 和頁 壓縮 有所

一、 數(shù)據(jù) 庫版本 數(shù)據(jù) 壓縮 在Sql Server 2008上才支持,2005不行,并且還要是企業(yè)版。我常常忘了這一點(diǎn),在2005的Studio上鬧出語法錯誤的狀況,折騰浪費(fèi)了好一陣才醒悟過來。 二、 壓縮 狀況 大約可以節(jié)省20%-50%的空間,并且行 壓縮 和頁 壓縮 有所區(qū)別。


一、數(shù)據(jù)庫版本
數(shù)據(jù)壓縮在Sql Server 2008上才支持,2005不行,并且還要是企業(yè)版。我常常忘了這一點(diǎn),在2005的Studio上鬧出語法錯誤的狀況,折騰浪費(fèi)了好一陣才醒悟過來。


二、壓縮狀況
大約可以節(jié)省20%-50%的空間,并且行壓縮和頁壓縮有所區(qū)別。
但讓我失望的是,像含有Varchar(max),xml這種字段類型的,反而似乎壓縮不起什么作用。其實(shí)我覺得最需要壓縮的就是它們。


三、行壓縮與頁壓縮
行壓縮是將固定長度類型存儲為可變長度存儲類型。頁壓縮除了行壓縮,還有字典壓縮等等。就是說,頁級比行級壓得更狠,更厲害。通常,表的話我采用頁壓縮;索引,行壓縮。不為什么,想當(dāng)然耳。


四、開始壓縮
壓縮的時候,硬盤要有空余的空間,因?yàn)閴嚎s需要消耗額外的磁盤。比如說,我壓縮一個190GB的表,大概還要額外占用90GB的空間。壓縮完了以后,可以通過收縮數(shù)據(jù)庫文件釋放。釋放了以后空間就連本帶利多上一點(diǎn)。


非分區(qū)表頁級壓縮
ALTER TABLE [table1] REBUILD WITH (DATA_COMPRESSION = PAGE);
GO


分區(qū)表頁級壓縮
ALTER TABLE [partitiontable1]
REBUILD PARTITION = ALL
WITH
(
DATA_COMPRESSION = PAGE ON PARTITIONS(1 TO 11)
);
GO


非分區(qū)索引行級壓縮
ALTER INDEX ix_id
ON table1
REBUILD WITH ( DATA_COMPRESSION = ROW ) ;
GO

分區(qū)索引行級壓縮
ALTER INDEX Ix_Id ON partitiontable1
REBUILD PARTITION = ALL
WITH
(
DATA_COMPRESSION = ROW ON PARTITIONS(1 TO 16)
);
GO

五、壓縮以后收縮數(shù)據(jù)庫文件
DBCC SHRINKFILE ([數(shù)據(jù)庫文件邏輯名], 收縮至多大(以M為單位));
GO

DBCC SHRINKFILE ([data_0], 5371);
GO


這個收縮后大小,我是先在Studio中,選中數(shù)據(jù)庫,鼠標(biāo)右鍵,在菜單中選任務(wù),收縮,然后得到這個收縮后的最小尺寸,再抄到腳本上的。
其實(shí)幫助里面說,DBCC SHRINKFILE 不會將文件收縮到小于存儲文件中的數(shù)據(jù)所需要的大小。例如,如果使用 10 MB 數(shù)據(jù)文件中的 7 MB,則帶有 target_size 為 6 的 DBCC SHRINKFILE 語句只能將該文件收縮到 7 MB,而不能收縮到 6 MB。那么我們將5371寫成1,豈不快哉?我沒有試,可能可以。


六、經(jīng)驗(yàn)總結(jié)
壓縮和收縮分區(qū)表、分區(qū)索引消耗好多時間。有個幾十G的分區(qū)表,我壓縮完了以后,收縮花了2天又19個小時,是用腳本執(zhí)行的,一口氣不停歇。
非分區(qū)表則很快,100多G的文件,1、2小時就搞定了。


七、為什么要壓縮
我覺得數(shù)據(jù)庫服務(wù)器的瓶頸往往在于硬盤。象我們的服務(wù)器,8個核,平常時CPU很少上到10%,到30%已經(jīng)頂天了。壓縮的意義,就是將硬盤的壓力轉(zhuǎn)一部分到CPU,正中下懷。
另一個就是,現(xiàn)在我們網(wǎng)站功能逐漸多了以后,數(shù)據(jù)增長也很快。幾年下來,數(shù)據(jù)積累相當(dāng)可觀,現(xiàn)在已經(jīng)用了600多G了。

八、不要用操作系統(tǒng)的文件壓縮

不要去使用只讀用戶定義文件組和只讀數(shù)據(jù)庫的 NTFS 壓縮。結(jié)果沒有壓縮多少,反倒是想將數(shù)據(jù)庫只讀去掉,還要先解壓。死未?

聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文檔

SQLSERVER2008的數(shù)據(jù)壓縮

SQLSERVER2008的數(shù)據(jù)壓縮:一、 數(shù)據(jù) 庫版本 數(shù)據(jù) 壓縮 在Sql Server 2008上才支持,2005不行,并且還要是企業(yè)版。我常常忘了這一點(diǎn),在2005的Studio上鬧出語法錯誤的狀況,折騰浪費(fèi)了好一陣才醒悟過來。 二、 壓縮 狀況 大約可以節(jié)省20%-50%的空間,并且行 壓縮 和頁 壓縮 有所
推薦度:
  • 熱門焦點(diǎn)

最新推薦

猜你喜歡

熱門推薦

專題
Top