善用Oracle 11g數(shù)據(jù)壓縮技術(shù)
隨著數(shù)據(jù)量的不斷海量,CPU的不斷強(qiáng)勁,雙核四核的叫個(gè)不停,一種叫做時(shí)間換空間的優(yōu)化技術(shù)應(yīng)該會(huì)越來(lái)越流行。所以,數(shù)據(jù)壓縮對(duì)于今后的數(shù)據(jù)庫(kù)來(lái)說(shuō),應(yīng)該會(huì)從核武器變成常規(guī)武器。Oracle從9i開(kāi)始羞羞答答的引入表級(jí)壓縮,一直以來(lái)都是像中國(guó)的核電站一樣,宣傳的用處大,論實(shí)際的貢獻(xiàn)就不怎么樣了。
Oracle11g似乎是正兒八經(jīng)的要推廣數(shù)據(jù)壓縮技術(shù)了,專門推出了一個(gè)叫做Advance Compression的組件,全面支持普通表壓縮,非結(jié)構(gòu)化數(shù)據(jù)壓縮(SecureFile數(shù)據(jù)壓縮),Data Pump數(shù)據(jù)壓縮,以及RMAN備份壓縮,數(shù)據(jù)壓縮技術(shù)從此名正言順的登上歷史舞臺(tái)。既然是專門做為一個(gè)Option推出,Oracle一定是對(duì)該特性相當(dāng)有信心,所以需要單獨(dú)為該特性購(gòu)買License。
在Oracle9i中雖然引入了表壓縮,但是有很大的限制。只能對(duì)批量裝載操作(比如直接路徑裝載,CTAS等)涉及的數(shù)據(jù)進(jìn)行壓縮,普通的DML操作的數(shù)據(jù)是無(wú)法壓縮的。這應(yīng)該是對(duì)于寫操作的壓縮難題沒(méi)有解決,一直遺留到Oracle11g,總算是解決了關(guān)系數(shù)據(jù)壓縮的寫性能問(wèn)題。Oracle的表壓縮是針對(duì)Block級(jí)別的數(shù)據(jù)壓縮,主要技術(shù)和Oracle9i差不多,還是在Block中引入symbol表,將block中的重復(fù)數(shù)據(jù)在symbol中用一個(gè)項(xiàng)表示。Oracle會(huì)對(duì)block進(jìn)行批量壓縮,而不是每次在block中寫入數(shù)據(jù)時(shí)都進(jìn)行壓縮,通過(guò)這種方式,可以盡量降低數(shù)據(jù)壓縮對(duì)于DML操作的性能影響。這樣,在block級(jí)別應(yīng)該會(huì)引入一個(gè)新的參數(shù),用于控制block中未壓縮的數(shù)據(jù)量達(dá)到某個(gè)標(biāo)準(zhǔn)以后進(jìn)行壓縮操作。
SecureFile也是Oracle11g新推出的一項(xiàng)特性,用于存儲(chǔ)非結(jié)構(gòu)化數(shù)據(jù)。SecureFile也將支持?jǐn)?shù)據(jù)壓縮操作。這樣對(duì)于傳統(tǒng)的LOB字段也可以進(jìn)行壓縮,將極大的減少大型數(shù)據(jù)庫(kù)的存儲(chǔ)空間需求。當(dāng)然,有得比有失,壓縮和解壓時(shí),對(duì)于CPU的要求也將更高。但是,目前CPU的發(fā)展速度明顯比IO和存儲(chǔ)空間快速的情況下,壓縮是大有可為的技術(shù)。通過(guò)在壓縮率和壓縮效率方面的不斷提升,以后應(yīng)該為成為各個(gè)數(shù)據(jù)庫(kù)的標(biāo)準(zhǔn)配置。
除了對(duì)數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行壓縮,Advance Compression Option還將支持備份數(shù)據(jù)的壓縮。做為邏輯備份的Data Pump和物理備份的RMAN工具,都將支持該技術(shù)。在Oracle10gR2中,Data Pump已經(jīng)開(kāi)始支持壓縮源數(shù)據(jù),Oracle11g中則可以直接壓縮導(dǎo)出文件,這樣導(dǎo)出的時(shí)候就可以極大的減少存儲(chǔ)空間的需求。在以前版本中,利用WinRAR等,經(jīng)??梢詫讉€(gè)G的導(dǎo)出文件壓縮到幾十M,Oracle11g的白皮書上說(shuō)壓縮率可以達(dá)到74.67%,等軟件出來(lái),大家可以好好的測(cè)試一把。同樣的,Oracle也在10g中開(kāi)始引入RMAN的壓縮技術(shù)。但是Oracle11g號(hào)稱采用了更先進(jìn)的ZLIB要所算法,可以比Oracle10g的壓縮算法快上40%,空間需求也將減少20%。
除了上述的數(shù)據(jù)壓縮技術(shù),Oracle 11g Advanced Compression Option還將引入另外一種壓縮技術(shù)。我們知道在Data Guard中,需要將日志從主庫(kù)傳遞到備庫(kù)。如果主庫(kù)的事務(wù)很多,則單位時(shí)間內(nèi)需要傳遞的日志量將相當(dāng)可觀。如果能將這些日志壓縮后在傳遞,然后在備庫(kù)解壓后應(yīng)用,將極大的減少對(duì)于網(wǎng)絡(luò)帶寬的需求,從而已減少主備庫(kù)的時(shí)間差。
另外,Oracle的bitmap一直就是壓縮存儲(chǔ)的,10g中的bitmap對(duì)于9i就有比較大的改動(dòng),通過(guò)一些細(xì)節(jié)的完善,提供更好的性能和更高的穩(wěn)定性,也是oracle一貫的風(fēng)格。對(duì)于bitmap在Oracle11g中將如何實(shí)現(xiàn),也將是非常值得關(guān)注的一個(gè)特點(diǎn)。
從Oracle11g開(kāi)始,將沒(méi)有什么是不可壓縮的。使用更強(qiáng)大的CPU,就可以降低或者延緩對(duì)存儲(chǔ)空間無(wú)休止的渴求,或許很多大型OLTP和大多數(shù)的數(shù)據(jù)倉(cāng)庫(kù),都將從數(shù)據(jù)壓縮技術(shù)中收益。
【編輯推薦】