亚洲韩日午夜视频,欧美日韩在线精品一区二区三区,韩国超清无码一区二区三区,亚洲国产成人影院播放,久草新在线,在线看片AV色

您好,歡迎來(lái)到思海網(wǎng)絡(luò),我們將竭誠(chéng)為您提供優(yōu)質(zhì)的服務(wù)! 誠(chéng)征網(wǎng)絡(luò)推廣 | 網(wǎng)站備案 | 幫助中心 | 軟件下載 | 購(gòu)買流程 | 付款方式 | 聯(lián)系我們 [ 會(huì)員登錄/注冊(cè) ]
促銷推廣
客服中心
業(yè)務(wù)咨詢
有事點(diǎn)擊這里…  531199185
有事點(diǎn)擊這里…  61352289
點(diǎn)擊這里給我發(fā)消息  81721488
有事點(diǎn)擊這里…  376585780
有事點(diǎn)擊這里…  872642803
有事點(diǎn)擊這里…  459248018
有事點(diǎn)擊這里…  61352288
有事點(diǎn)擊這里…  380791050
技術(shù)支持
有事點(diǎn)擊這里…  714236853
有事點(diǎn)擊這里…  719304487
有事點(diǎn)擊這里…  1208894568
有事點(diǎn)擊這里…  61352289
在線客服
有事點(diǎn)擊這里…  531199185
有事點(diǎn)擊這里…  61352288
有事點(diǎn)擊這里…  983054746
有事點(diǎn)擊這里…  893984210
當(dāng)前位置:首頁(yè) >> 技術(shù)文章 >> 文章瀏覽
技術(shù)文章

使用SQL Server 2008中的數(shù)據(jù)壓縮功能

添加時(shí)間:2014-4-1 17:25:50  添加: 思海網(wǎng)絡(luò) 

  大家都知道SQL Server 2005 SP2為我們帶來(lái)了vardecimal功能,這項(xiàng)功能使得原來(lái)定長(zhǎng)的decimal數(shù)據(jù)在數(shù)據(jù)文件中以可變長(zhǎng)的格式存儲(chǔ),據(jù)稱這項(xiàng)功能可以為典型的數(shù)據(jù) 倉(cāng)庫(kù)節(jié)省30%的空間,而SQL Server 2008在這一基礎(chǔ)上又進(jìn)一步增強(qiáng)了數(shù)據(jù)壓縮功能。SQL Server 2008現(xiàn)在支持行壓縮和頁(yè)面壓縮兩種選項(xiàng),數(shù)據(jù)壓縮選項(xiàng)可以在以下對(duì)象上啟用:

  未創(chuàng)建聚簇索引的表

  創(chuàng)建聚簇索引的表

 

  非聚簇索引(對(duì)表設(shè)置壓縮選項(xiàng)不會(huì)影響到該表上的非聚簇索引,因此聚簇索引的壓縮需要單獨(dú)設(shè)置)

  索引視圖

  分區(qū)表和分區(qū)索引中的單個(gè)分區(qū)

  為什么需要數(shù)據(jù)壓縮

  首先可能需要討論的問(wèn)題就是為什么在存儲(chǔ)成本不斷降低的今天,微軟還要煞費(fèi)苦心地在SQL Server中實(shí)現(xiàn)并且不斷改進(jìn)數(shù)據(jù)壓縮技術(shù)呢?

  盡管存儲(chǔ)成本已經(jīng)不再是傳統(tǒng)意義上的首要考慮因素,但是這并不代表數(shù)據(jù)庫(kù)尺寸不是一個(gè)問(wèn)題,因?yàn)閿?shù)據(jù)庫(kù)尺寸除了會(huì)影響到存儲(chǔ)成本之外,還極大地關(guān)聯(lián)到管理成本和性能問(wèn)題。

   首先我們來(lái)討論為什么會(huì)有管理成本的問(wèn)題?因?yàn)閿?shù)據(jù)庫(kù)需要備份,數(shù)據(jù)庫(kù)的尺寸越大,那么備份時(shí)間就會(huì)越長(zhǎng),當(dāng)然另外一點(diǎn)就是消耗的備份硬件成本也會(huì)隨之 提高(包括需要的備份介質(zhì)成本和為了滿足備份窗口而需要更高級(jí)的備份設(shè)備帶來(lái)的采購(gòu)成本),還有一種管理成本就是數(shù)據(jù)庫(kù)的維護(hù)成本,例如我們經(jīng)常需要完成 的DBCC任務(wù),數(shù)據(jù)庫(kù)尺寸越大,我們就需要更多的時(shí)間來(lái)完成這些任務(wù)。

  接著我們?cè)倏纯葱阅軉?wèn)題。SQL Server在掃描磁盤(pán)讀取數(shù)據(jù)的時(shí)候都是按照數(shù)據(jù)頁(yè)為單位進(jìn)行讀取的,因此如果一張數(shù)據(jù)頁(yè)中包含的數(shù)據(jù)行數(shù)越多,SQL Server在一次數(shù)據(jù)頁(yè)IO中獲得的數(shù)據(jù)就會(huì)越多,這樣也就帶來(lái)了性能的提升。

   最后考慮存儲(chǔ)的成本,按照原先SQL Server 2005 SP2中vardecimal的壓縮數(shù)據(jù)為例,30%的空間節(jié)省也就意味著30%的存儲(chǔ)成本,而按照SQL Server 2008當(dāng)前放出的測(cè)試數(shù)據(jù),采用新的數(shù)據(jù)壓縮技術(shù)可以達(dá)到2X-7X的存儲(chǔ)率,再加上如果企業(yè)要考慮容災(zāi)而增加的存儲(chǔ)空間,這樣節(jié)省的存儲(chǔ)硬件成本也將 是想當(dāng)可觀的。

關(guān)鍵字: select 子表樹(shù) 企業(yè)管理器 DBCC PAGE REVERT

SQL Server 2008中的數(shù)據(jù)壓縮功能。

  如何使用數(shù)據(jù)壓縮

  SQL Server 2008中的壓縮選項(xiàng)可以在創(chuàng)建表或索引時(shí)通過(guò)Option進(jìn)行設(shè)置,例如:     CREATE TABLE TestTable (col1 int, col2 varchar(200)) WITH (DATA_COMPRESSION = ROW);

  如果需要改變一個(gè)分區(qū)的壓縮選項(xiàng),則可以用以下語(yǔ)句:     ALTER TABLE TestTable REBUILD PARTITION = 1 WITH (DATA COMPRESSION = PAGE);

   如果需要為分區(qū)表的各個(gè)分區(qū)設(shè)置不同的壓縮選項(xiàng),可以使用以下的語(yǔ)句:(SQL Server 2008可以對(duì)不同的分區(qū)使用不同的壓縮選項(xiàng),這一點(diǎn)對(duì)于數(shù)據(jù)倉(cāng)庫(kù)應(yīng)用是非常重要的,因?yàn)閿?shù)據(jù)倉(cāng)庫(kù)的事實(shí)表通常都會(huì)有一個(gè)或數(shù)個(gè)熱分區(qū),這些分區(qū)中的數(shù)據(jù) 經(jīng)常需要更新,為了避免數(shù)據(jù)壓縮給這些分區(qū)上的數(shù)據(jù)更新帶來(lái)額外的處理載荷,可以對(duì)這些分區(qū)關(guān)閉壓縮選項(xiàng))     CREATE TABLE PartitionedTable (col1 int, col2 varchar(200))
    ON PS1 (col1)
    WITH (
    DATA_COMPRESSION = ROW ON PARTITIONS(1),
    DATA_COMPRESSION = PAGE ON PARTITION(2 TO 4));

  如果是為某個(gè)索引設(shè)置壓縮選項(xiàng)的話,可以使用:

     CREATE INDEX IX_TestTable_Col1 ON TestTable (Col1) WITH (DATA_COMPRESSION = ROW);

  如果是修改某個(gè)索引的壓縮選項(xiàng),可以使用:     ALTER INDEX IX_TestTable_Col1 ON TestTable REBUILD WITH (DATA_COMPRESSION = ROW);

  SQL Server 2008同時(shí)還提供了一個(gè)名為sp_estimate_data_compression_savings存儲(chǔ)過(guò)程幫助DBA估計(jì)激活壓縮選項(xiàng)后對(duì)象尺寸。

  數(shù)據(jù)壓縮是怎樣工作的

  對(duì)于行壓縮,SQL Server 2008采用以下三種方法來(lái)節(jié)省存儲(chǔ)空間:

關(guān)鍵字: select 子表樹(shù) 企業(yè)管理器 DBCC PAGE REVERT

SQL Server 2008中的數(shù)據(jù)壓縮功能。

  減少了與記錄相關(guān)聯(lián)的元數(shù)據(jù)開(kāi)銷。此元數(shù)據(jù)為有關(guān)列、列長(zhǎng)度和偏移量的信息。在某些情況下,元數(shù)據(jù)開(kāi)銷可能大于舊的存儲(chǔ)格式。

  它對(duì)于數(shù)值類型(例如,integer、decimal和float)和基于數(shù)值的類型(例如,datetime和money)使用可變長(zhǎng)度存儲(chǔ)格式。

  它通過(guò)使用不存儲(chǔ)空字符的可變長(zhǎng)度格式來(lái)存儲(chǔ)定長(zhǎng)字符串。

  對(duì)于頁(yè)面壓縮,SQL Server 2008則是在一張數(shù)據(jù)頁(yè)面上依次采用:

  行壓縮

  前綴壓縮

  字典壓縮

  配置數(shù)據(jù)壓縮功能需要注意的

  盡管SQL Server 2008的數(shù)據(jù)壓縮功能非常有價(jià)值,但是仍然需要注意一些問(wèn)題:

  數(shù)據(jù)壓縮功能僅在企業(yè)版和開(kāi)發(fā)版中可用

  數(shù)據(jù)壓縮可以讓一張數(shù)據(jù)頁(yè)存儲(chǔ)更多的數(shù)據(jù)行,但是并不能改變單行數(shù)據(jù)最長(zhǎng)8060字節(jié)這一限制

  在一張已經(jīng)設(shè)置了數(shù)據(jù)壓縮的表上創(chuàng)建聚簇索引時(shí),聚簇索引默認(rèn)繼承原表上的壓縮選項(xiàng)

  在未設(shè)置聚簇索引的表上設(shè)置頁(yè)面壓縮時(shí),只有以下情況才會(huì)獲得頁(yè)面壓縮的實(shí)際效果:

  數(shù)據(jù)使用BULK INSERT語(yǔ)法添加到表中

  數(shù)據(jù)使用INSERT INTO ... WITH (TABLOCK)語(yǔ)法添加到表中

  執(zhí)行帶有頁(yè)面壓縮選項(xiàng)的ALTER TABLE ... REBUILD命令

  在未設(shè)置聚簇索引的表上更改壓縮選項(xiàng),會(huì)導(dǎo)致該表上所有非聚簇索引都需要重建,因?yàn)檫@些非聚簇索引指向的數(shù)據(jù)行地址已經(jīng)都發(fā)生了改變。

  在改變壓縮選項(xiàng)時(shí)所需要的臨時(shí)空間大小與創(chuàng)建索引是所需要的空間是一樣的,因此對(duì)于分區(qū)表,我們可以逐個(gè)分區(qū)設(shè)置壓縮選項(xiàng)來(lái)減少臨時(shí)空間的需求壓力。

   由于SQL Server 2008中數(shù)據(jù)壓縮技術(shù)其實(shí)是SQL Server 2005 SP2中vardecimal技術(shù)的一個(gè)超集,因此設(shè)置了數(shù)據(jù)壓縮后就沒(méi)有必要保留vardecimal了。當(dāng)然SQL Server 2008為了保持向后兼容性,在當(dāng)前版本中仍然保留了vardecimal,但是SQL Server 2008的下一個(gè)版本及可能就會(huì)棄用vardecimal選項(xiàng),因此做了這些設(shè)置的數(shù)據(jù)庫(kù)應(yīng)該盡早改變到數(shù)據(jù)壓縮設(shè)置下。

   SQL Server 2008的壓縮選項(xiàng)是工作在存儲(chǔ)引擎層的,對(duì)于SQL Server的其他部件來(lái)說(shuō)這一特性是透明的,因此當(dāng)我們用BULK LOAD的方式將外面的數(shù)據(jù)導(dǎo)入SQL Server時(shí),會(huì)顯著的增加CPU的工作載荷,同時(shí)將以壓縮的數(shù)據(jù)表導(dǎo)出到外部文件時(shí),可能會(huì)消耗比原來(lái)多很多的空間。

關(guān)鍵字:SQL Server、數(shù)據(jù)、壓縮

分享到:

頂部 】 【 關(guān)閉
版權(quán)所有:佛山思海電腦網(wǎng)絡(luò)有限公司 ©1998-2024 All Rights Reserved.
聯(lián)系電話:(0757)22630313、22633833
中華人民共和國(guó)增值電信業(yè)務(wù)經(jīng)營(yíng)許可證: 粵B1.B2-20030321 備案號(hào):粵B2-20030321-1
網(wǎng)站公安備案編號(hào):44060602000007 交互式欄目專項(xiàng)備案編號(hào):200303DD003  
察察 工商 網(wǎng)安 舉報(bào)有獎(jiǎng)  警警  手機(jī)打開(kāi)網(wǎng)站