程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle數據庫基礎 >> 善用Oracle 11g數據壓縮技術

善用Oracle 11g數據壓縮技術

編輯:Oracle數據庫基礎

隨著數據量的不斷海量,CPU的不斷強勁,雙核四核的叫個不停,一種叫做時間換空間的優化技術應該會越來越流行。所以,數據壓縮對於今後的數據庫來說,應該會從核武器變成常規武器。Oracle從9i開始羞羞答答的引入表級壓縮,一直以來都是像中國的核電站一樣,宣傳的用處大,論實際的貢獻就不怎麼樣了。

Oracle11g似乎是正兒八經的要推廣數據壓縮技術了,專門推出了一個叫做Advance Compression的組件,全面支持普通表壓縮,非結構化數據壓縮(SecureFile數據壓縮),Data Pump數據壓縮,以及RMAN備份壓縮,數據壓縮技術從此名正言順的登上歷史舞台。既然是專門做為一個Option推出,Oracle一定是對該特性相當有信心,所以需要單獨為該特性購買License。

在Oracle9i中雖然引入了表壓縮,但是有很大的限制。只能對批量裝載操作(比如直接路徑裝載,CTAS等)涉及的數據進行壓縮,普通的DML操作的數據是無法壓縮的。這應該是對於寫操作的壓縮難題沒有解決,一直遺留到Oracle11g,總算是解決了關系數據壓縮的寫性能問題。Oracle的表壓縮是針對Block級別的數據壓縮,主要技術和Oracle9i差不多,還是在Block中引入symbol表,將block中的重復數據在symbol中用一個項表示。Oracle會對block進行批量壓縮,而不是每次在block中寫入數據時都進行壓縮,通過這種方式,可以盡量降低數據壓縮對於DML操作的性能影響。這樣,在block級別應該會引入一個新的參數,用於控制block中未壓縮的數據量達到某個標准以後進行壓縮操作。

SecureFile也是Oracle11g新推出的一項特性,用於存儲非結構化數據。SecureFile也將支持數據壓縮操作。這樣對於傳統的LOB字段也可以進行壓縮,將極大的減少大型數據庫的存儲空間需求。當然,有得比有失,壓縮和解壓時,對於CPU的要求也將更高。但是,目前CPU的發展速度明顯比IO和存儲空間快速的情況下,壓縮是大有可為的技術。通過在壓縮率和壓縮效率方面的不斷提升,以後應該為成為各個數據庫的標准配置。

除了對數據庫中的數據進行壓縮,Advance Compression Option還將支持備份數據的壓縮。做為邏輯備份的Data Pump和物理備份的RMAN工具,都將支持該技術。在Oracle10gR2中,Data Pump已經開始支持壓縮源數據,Oracle11g中則可以直接壓縮導出文件,這樣導出的時候就可以極大的減少存儲空間的需求。在以前版本中,利用WinRAR等,經常可以將幾個G的導出文件壓縮到幾十M,Oracle11g的白皮書上說壓縮率可以達到74.67%,等軟件出來,大家可以好好的測試一把。同樣的,Oracle也在10g中開始引入RMAN的壓縮技術。但是Oracle11g號稱采用了更先進的ZLIB要所算法,可以比Oracle10g的壓縮算法快上40%,空間需求也將減少20%。

除了上述的數據壓縮技術,Oracle 11g Advanced Compression Option還將引入另外一種壓縮技術。我們知道在Data Guard中,需要將日志從主庫傳遞到備庫。如果主庫的事務很多,則單位時間內需要傳遞的日志量將相當可觀。如果能將這些日志壓縮後在傳遞,然後在備庫解壓後應用,將極大的減少對於網絡帶寬的需求,從而已減少主備庫的時間差。

另外,Oracle的bitmap一直就是壓縮存儲的,10g中的bitmap對於9i就有比較大的改動,通過一些細節的完善,提供更好的性能和更高的穩定性,也是oracle一貫的風格。對於bitmap在Oracle11g中將如何實現,也將是非常值得關注的一個特點。

從Oracle11g開始,將沒有什麼是不可壓縮的。使用更強大的CPU,就可以降低或者延緩對存儲空間無休止的渴求,或許很多大型OLTP和大多數的數據倉庫,都將從數據壓縮技術中收益。

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