程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SqlServer數據庫 >> 關於SqlServer >> SQL Server 2008最後CTP:聚焦數據壓縮技術

SQL Server 2008最後CTP:聚焦數據壓縮技術

編輯:關於SqlServer
 在微軟SQL Server 2008盛大發布會後足足六個月,該新版本才將於下個禮拜正式發行。而對SQL Server 2008感興趣的潛在用戶現在有機會試用其新功能和特性。

  2月19日下午,微軟推出了最後一次SQL Server 2008社區測試試用版,向普通商業用戶提供了對市場分析師譽為微軟發展最快的產品線上最新產品一個先睹為快的機會。

  但是這個新的RDBMS結構有一個主要特性,除非商業用戶已經決定了要跟SQL Server 2005說再見並投入新版本的懷抱,否則他們都會希望能夠在一個安全的環境下對其進行試用,比如虛擬服務器。那就是微軟的數據壓縮技術,雖然這項技術在SS 2005 SP2裡已經推出,但是在SS 2008中,該項技術得到進一步發展,可以應用到幾乎所有類型的數據。

  一般而言,當我們討論“數據壓縮”的時候,腦海裡馬上就會聯想到ZIP Files或Lempel-Ziv algorithm,但是我們現在要說的微軟數據壓縮技術則是完全不同的。對於能夠存儲在內存或硬盤裡的活躍數據庫而言,進行數據壓縮並不是件容易的事情。靜態數據庫基礎上,可以在頁面水平上進行數據壓縮,但是考慮到在壓縮字典上的過分花銷和維護所需的精力和時間,進行數據壓縮往往得不償失。

  事實上,首先把數據壓縮提上開發日程的是IBM,IBM早在1998年就開始在DB2裡嘗試了數據壓縮新方案,並在2002年發行的DB2 8裡正式推出。它提出了行壓縮的概念,這種壓縮形式並不需要太多的excess代碼編寫。它的主要原理是,當你新建一個SQL表或者建立存儲過程來改變現有表的時候,你以 COMPRESS YES 聲明新的表方案需要進行壓縮。

  IBM當時的這項技術是把表裡的某些列——一般是長度不一的列——以隱藏的索引表代替,這樣的隱藏索引表被稱為壓縮字典。然後利用數據壓縮技術對該表進行區別處理,如果把壓縮技術應用到整個數據表的話就會引起嚴重後果。

  DB2早先的版本都有類似的數據壓縮方法,但是數據庫管理員報告其壓縮效果適得其反,因為數據字典的大小過分膨脹,甚至比完全沒有進行壓縮的數據表還要大。

  正是DB2中數據壓縮技術的使用激發了微軟開發完全不一樣的、適用於其系統的數據壓縮方法。SS 2005推出了文件壓縮技術,盡管這項技術只能用於只讀數據庫。但是從SQL Server 2005 SP2開始,微軟發展出一種新的壓縮理念,開發出一種新的可變類型數據,稱為 vardecimal數據。

  微軟工程師Sunil Agarwal和 Hermann Daeubler在2007年寫道:“這種存儲格式可以在表水平上啟用,在表中啟用後,SQL Server會把decimal和numeric類型數據存儲到行的可變部分裡,而不是存儲在固定部分。如果你的數據庫裡的表含有decimal和numeric類型數據,你就可以使用 vardecimal存儲格式來縮小數據庫的大小。而能夠節省出多少空間取決於你的數據庫中含有多少 decimal或numeric數據列、數據分布情況以及表的大小。“

  假設你的表裡有一列為地址數據信息,在現有的varchar格式下,每一條地址信息後面緊接著的空間將會被截掉,而不是以0的形式存儲,這樣就不會占用過多的空間。而運用vardecimal格式,以上的原理則應用到了賦值的列。盡管在一列的任何一條輸入最高的值需要4個字符代表,但是不是每條輸入都需要4個字符,尤其是那些只含有像0或15這樣的整數的輸入。

  Vardecimal格式在SS 2005 SP2中還只是一個初步的概念,針對用戶時還是一個“試試你就會喜歡上它”的新嘗試,但到了SS 2008版本,它已經是所有類型值的標准格式了,從基本上改變了數據庫的構造。

  但是它並沒有改變數據庫程序的語義,因此運行時跟應用固定存儲一樣。正如Agarwal在去年11月份寫的:“很重要的一點是,盡管SQL Server以不同長度格式對此類數據進行存儲,數據類型的語義不會改變(換句話說,從應用的角度來看,依然是固定長度 的數據類型)。這意味著你可以隨便利用數據壓縮技術的優點而無需對應用程序做任何改動。”

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved