多年來,關(guān)系型數(shù)據(jù)庫一直在相關(guān)表中存儲(chǔ)信息,這種表由行和列組成。想像一下大量的電子數(shù)據(jù)表,包含數(shù)百萬行的信息,同時(shí)還通過數(shù)據(jù)列將不同的電子數(shù)據(jù)表聯(lián)系在一起。
要想了解內(nèi)存技術(shù)怎樣加快業(yè)務(wù)流程,可以聽聽甲骨文公司首席執(zhí)行官Larry Ellison的解釋。今年6月10日,Larry在推出最新Oracle Database In-Memory時(shí)舉了很多例子,以說明這種新技術(shù)如何提高企業(yè)日常應(yīng)用的性能。例如,成本管理應(yīng)用的速度可以達(dá)到以前的257倍,財(cái)務(wù)分析應(yīng)用處理數(shù)據(jù)的速度是以前的1300倍,銷售訂單分析應(yīng)用的速度是以前的1700倍等。
在一次測試當(dāng)中,通常需要4個(gè)小時(shí)處理的工作量在使用內(nèi)存技術(shù)后僅用了4秒鐘便完成了,速度快到以致于參與測試的技術(shù)人員都不太確定這一切是不是真的。Larry提到:“有人說,‘我以為還沒運(yùn)行呢?!睂?shí)際上,運(yùn)行已經(jīng)結(jié)束了。
那么,怎樣解釋這種驚人的性能提升呢?長久以來,關(guān)系型數(shù)據(jù)庫在企業(yè)數(shù)據(jù)中心中的使用已經(jīng)形成了標(biāo)準(zhǔn)模式,而Oracle Database In-Memory正是通過對這種標(biāo)準(zhǔn)模式進(jìn)行架構(gòu)調(diào)整實(shí)現(xiàn)了性能的提升。
多年來,關(guān)系型數(shù)據(jù)庫一直在相關(guān)表中存儲(chǔ)信息,這種表由行和列組成。想像一下大量的電子數(shù)據(jù)表,包含數(shù)百萬行的信息,同時(shí)還通過數(shù)據(jù)列將不同的電子數(shù)據(jù)表聯(lián)系在一起。傳統(tǒng)上,表數(shù)據(jù)一直以行格式存儲(chǔ)在磁盤和計(jì)算機(jī)系統(tǒng)內(nèi)存中,因?yàn)橹T如員工、客戶、發(fā)票、生產(chǎn)部件、電話記錄等業(yè)務(wù)交易都是在行層面變更表信息。而在對數(shù)據(jù)庫進(jìn)行查詢時(shí),一般是以列作為查詢基礎(chǔ)的,但在進(jìn)行查詢,尤其是數(shù)據(jù)分析查詢時(shí),還需要查看表數(shù)據(jù)的所有行才能得到查詢結(jié)果。
Oracle Database In-Memory在傳統(tǒng)的行存儲(chǔ)方式上,增加了一種列存儲(chǔ)方式,顯著提高了數(shù)據(jù)分析查詢和復(fù)雜交易處理的速度。這種雙格式方法同時(shí)以行和列的方式組織數(shù)據(jù),行存儲(chǔ)以實(shí)現(xiàn)最佳交易性能,列存儲(chǔ)以實(shí)現(xiàn)高速數(shù)據(jù)分析。雙格式方法不僅提高了原始速度,更帶來了很多好處。以下是Oracle Database In-Memory與眾不同的12個(gè)方面:
在介紹這12個(gè)方面的特性之前,需要著重強(qiáng)調(diào)的一點(diǎn)就是“無需對應(yīng)用做任何修改”。如果將數(shù)據(jù)庫應(yīng)用比作汽車,原來這輛汽車零到百公里的加速時(shí)間為10秒,而現(xiàn)在無需改動(dòng)發(fā)動(dòng)機(jī),無需改動(dòng)地盤,無需做任何修改,只需要安裝Oracle Database In-Memory,就可以將零到百公里的加速時(shí)間大大縮短,這對于所有Oracle數(shù)據(jù)庫的用戶,以及希望使用Oracle數(shù)據(jù)庫的用戶來說是一個(gè)很大的喜訊。
1.作為Oracle數(shù)據(jù)庫12c的選件提供。Oracle Database In-Memory不是獨(dú)立產(chǎn)品,而是Oracle數(shù)據(jù)庫12c企業(yè)版的產(chǎn)品選件。因此,2013年推出的Oracle旗艦關(guān)系型數(shù)據(jù)庫Oracle數(shù)據(jù)庫12c現(xiàn)在擁有了可選的內(nèi)存列存儲(chǔ)功能。
2.不僅僅是內(nèi)存。Oracle Database In-Memory將新的列存儲(chǔ)信息放入快速RAM(隨機(jī)存取存儲(chǔ)器)中。同時(shí),行存儲(chǔ)信息仍然讀自并寫至內(nèi)存、閃存及磁盤,并用列存儲(chǔ)同步信息。之后,列存儲(chǔ)信息僅存在于內(nèi)存中。
3.數(shù)據(jù)庫達(dá)到極致性能。在2013年演示該技術(shù)時(shí),甲骨文申明,Oracle Database In-Memory提供查詢結(jié)果的速度是以前的100倍,交易處理速度翻了一番。在今年6月10日正式推出時(shí),甲骨文也提供了客戶測試數(shù)據(jù),再次印證了這些數(shù)字。
4.速度甚至更快。如上所述,Larry Ellison提到,在測試中,甲骨文客戶通過Oracle Database In-Memory大幅提升了數(shù)據(jù)分析查詢速度,而且遠(yuǎn)不止于以前的100倍。Oracle內(nèi)存運(yùn)輸管理(Oracle In-Memory Transportation Management)軟件的運(yùn)行速度是以前的1030倍,PeopleSoft 內(nèi)存財(cái)務(wù)分析(PeopleSoft In-Memory Financial Analyzer)軟件的執(zhí)行速度則是以前的1300倍。
5.新的列存儲(chǔ)方式顯著提升了數(shù)據(jù)分析速度。采用Oracle Database In-Memory后,所有數(shù)據(jù)分析查詢都依靠列存儲(chǔ)方式運(yùn)行,而不是索引或者行存儲(chǔ)。列存儲(chǔ)針對數(shù)據(jù)分析查詢進(jìn)行了優(yōu)化,速度是以前的100倍(一些客戶的測試結(jié)果還可達(dá)到更快的速度)。
6.聯(lián)機(jī)交易處理速度可提高一倍。憑借Oracle Database In-Memory列存儲(chǔ),聯(lián)機(jī)交易處理(OLTP)速度可提高一倍,因?yàn)椴辉傩枰?shù)據(jù)分析索引(這種索引可提高基于行存儲(chǔ)的已知查詢的速度),也不再需要為基于列存儲(chǔ)的查詢更新數(shù)據(jù)分析索引。
7.無需對應(yīng)用或查詢進(jìn)行更改。應(yīng)用和數(shù)據(jù)分析查詢繼續(xù)依靠Oracle數(shù)據(jù)庫12c運(yùn)行。Oracle Database In-Memory只是將查詢處理改在列存儲(chǔ)空間中進(jìn)行,而應(yīng)用和查詢的代碼無需進(jìn)行任何更改。
8.易于設(shè)置和維護(hù)。Oracle Database In-Memory的設(shè)置包括配置列存儲(chǔ)的容量、規(guī)定列存儲(chǔ)中包括哪些表(或分區(qū)——數(shù)據(jù)庫存儲(chǔ)的一種結(jié)構(gòu)體)以及刪除不再需要的數(shù)據(jù)分析索引。這即是全部所需的設(shè)置。
9.具備容錯(cuò)能力。Oracle Database In-Memory與Oracle數(shù)據(jù)庫12c一樣;內(nèi)存列存儲(chǔ)是與行存儲(chǔ)同步的;具備Oracle數(shù)據(jù)庫12c的所有可靠性和災(zāi)難恢復(fù)能力,包括Oracle真正應(yīng)用集群、列存儲(chǔ)信息保護(hù)等。
10.隨時(shí)應(yīng)對大數(shù)據(jù)。無論應(yīng)用和查詢針對的數(shù)據(jù)庫體量再大、數(shù)據(jù)分析索引的使用再頻繁還是查詢運(yùn)行時(shí)間再長,Oracle Database In-Memory都依然能提供實(shí)時(shí)數(shù)據(jù)分析。Oracle Database In-Memory對數(shù)據(jù)庫大小沒有限制。
11.支持多種不同查詢。即是企業(yè)需要在不斷增加的企業(yè)信息中為無限多的業(yè)務(wù)問題尋求答案,Oracle Database In-Memory都能即時(shí)提供查詢結(jié)果。
12.雙格式架構(gòu)提高靈活性。Oracle Database In-Memory面向運(yùn)行OLTP及業(yè)務(wù)數(shù)據(jù)分析的關(guān)鍵任務(wù)數(shù)據(jù)庫和應(yīng)用。將交易處理數(shù)據(jù)庫和報(bào)告數(shù)據(jù)庫分開,一直是優(yōu)化OLTP及數(shù)據(jù)分析采取的方法,但其代價(jià)是需維護(hù)單獨(dú)的系統(tǒng)硬件、軟件以及同步這些系統(tǒng)的流程。憑借Oracle Database In-Memory,客戶可以合并交易和報(bào)告數(shù)據(jù)庫,使數(shù)據(jù)庫能夠通過一個(gè)云中托管的數(shù)據(jù)庫示例,進(jìn)行縱向擴(kuò)展、交易處理及數(shù)據(jù)分析查詢,在移動(dòng)應(yīng)用中提供高速交易處理,即時(shí)給出結(jié)果。