多年來,關(guān)系型數(shù)據(jù)庫一直在相關(guān)表中存儲信息,這種表由行和列組成。想像一下大量的電子數(shù)據(jù)表,包含數(shù)百萬行的信息,同時還通過數(shù)據(jù)列將不同的電子數(shù)據(jù)表聯(lián)系在一起。
要想了解內(nèi)存技術(shù)怎樣加快業(yè)務(wù)流程,可以聽聽甲骨文公司首席執(zhí)行官Larry Ellison的解釋。今年6月10日,Larry在推出最新Oracle Database In-Memory時舉了很多例子,以說明這種新技術(shù)如何提高企業(yè)日常應(yīng)用的性能。例如,成本管理應(yīng)用的速度可以達到以前的257倍,財務(wù)分析應(yīng)用處理數(shù)據(jù)的速度是以前的1300倍,銷售訂單分析應(yīng)用的速度是以前的1700倍等。
在一次測試當(dāng)中,通常需要4個小時處理的工作量在使用內(nèi)存技術(shù)后僅用了4秒鐘便完成了,速度快到以致于參與測試的技術(shù)人員都不太確定這一切是不是真的。Larry提到:“有人說,‘我以為還沒運行呢。’”實際上,運行已經(jīng)結(jié)束了。
那么,怎樣解釋這種驚人的性能提升呢?長久以來,關(guān)系型數(shù)據(jù)庫在企業(yè)數(shù)據(jù)中心中的使用已經(jīng)形成了標(biāo)準(zhǔn)模式,而Oracle Database In-Memory正是通過對這種標(biāo)準(zhǔn)模式進行架構(gòu)調(diào)整實現(xiàn)了性能的提升。
多年來,關(guān)系型數(shù)據(jù)庫一直在相關(guān)表中存儲信息,這種表由行和列組成。想像一下大量的電子數(shù)據(jù)表,包含數(shù)百萬行的信息,同時還通過數(shù)據(jù)列將不同的電子數(shù)據(jù)表聯(lián)系在一起。傳統(tǒng)上,表數(shù)據(jù)一直以行格式存儲在磁盤和計算機系統(tǒng)內(nèi)存中,因為諸如員工、客戶、發(fā)票、生產(chǎn)部件、電話記錄等業(yè)務(wù)交易都是在行層面變更表信息。而在對數(shù)據(jù)庫進行查詢時,一般是以列作為查詢基礎(chǔ)的,但在進行查詢,尤其是數(shù)據(jù)分析查詢時,還需要查看表數(shù)據(jù)的所有行才能得到查詢結(jié)果。
Oracle Database In-Memory在傳統(tǒng)的行存儲方式上,增加了一種列存儲方式,顯著提高了數(shù)據(jù)分析查詢和復(fù)雜交易處理的速度。這種雙格式方法同時以行和列的方式組織數(shù)據(jù),行存儲以實現(xiàn)最佳交易性能,列存儲以實現(xiàn)高速數(shù)據(jù)分析。雙格式方法不僅提高了原始速度,更帶來了很多好處。以下是Oracle Database In-Memory與眾不同的12個方面:
在介紹這12個方面的特性之前,需要著重強調(diào)的一點就是“無需對應(yīng)用做任何修改”。如果將數(shù)據(jù)庫應(yīng)用比作汽車,原來這輛汽車零到百公里的加速時間為10秒,而現(xiàn)在無需改動發(fā)動機,無需改動地盤,無需做任何修改,只需要安裝Oracle Database In-Memory,就可以將零到百公里的加速時間大大縮短,這對于所有Oracle數(shù)據(jù)庫的用戶,以及希望使用Oracle數(shù)據(jù)庫的用戶來說是一個很大的喜訊。
1.作為Oracle數(shù)據(jù)庫12c的選件提供。Oracle Database In-Memory不是獨立產(chǎn)品,而是Oracle數(shù)據(jù)庫12c企業(yè)版的產(chǎn)品選件。因此,2013年推出的Oracle旗艦關(guān)系型數(shù)據(jù)庫Oracle數(shù)據(jù)庫12c現(xiàn)在擁有了可選的內(nèi)存列存儲功能。


2.不僅僅是內(nèi)存。Oracle Database In-Memory將新的列存儲信息放入快速RAM(隨機存取存儲器)中。同時,行存儲信息仍然讀自并寫至內(nèi)存、閃存及磁盤,并用列存儲同步信息。之后,列存儲信息僅存在于內(nèi)存中。
3.數(shù)據(jù)庫達到極致性能。在2013年演示該技術(shù)時,甲骨文申明,Oracle Database In-Memory提供查詢結(jié)果的速度是以前的100倍,交易處理速度翻了一番。在今年6月10日正式推出時,甲骨文也提供了客戶測試數(shù)據(jù),再次印證了這些數(shù)字。
4.速度甚至更快。如上所述,Larry Ellison提到,在測試中,甲骨文客戶通過Oracle Database In-Memory大幅提升了數(shù)據(jù)分析查詢速度,而且遠不止于以前的100倍。Oracle內(nèi)存運輸管理(Oracle In-Memory Transportation Management)軟件的運行速度是以前的1030倍,PeopleSoft 內(nèi)存財務(wù)分析(PeopleSoft In-Memory Financial Analyzer)軟件的執(zhí)行速度則是以前的1300倍。
5.新的列存儲方式顯著提升了數(shù)據(jù)分析速度。采用Oracle Database In-Memory后,所有數(shù)據(jù)分析查詢都依靠列存儲方式運行,而不是索引或者行存儲。列存儲針對數(shù)據(jù)分析查詢進行了優(yōu)化,速度是以前的100倍(一些客戶的測試結(jié)果還可達到更快的速度)。
6.聯(lián)機交易處理速度可提高一倍。憑借Oracle Database In-Memory列存儲,聯(lián)機交易處理(OLTP)速度可提高一倍,因為不再需要建立數(shù)據(jù)分析索引(這種索引可提高基于行存儲的已知查詢的速度),也不再需要為基于列存儲的查詢更新數(shù)據(jù)分析索引。
7.無需對應(yīng)用或查詢進行更改。應(yīng)用和數(shù)據(jù)分析查詢繼續(xù)依靠Oracle數(shù)據(jù)庫12c運行。Oracle Database In-Memory只是將查詢處理改在列存儲空間中進行,而應(yīng)用和查詢的代碼無需進行任何更改。
8.易于設(shè)置和維護。Oracle Database In-Memory的設(shè)置包括配置列存儲的容量、規(guī)定列存儲中包括哪些表(或分區(qū)——數(shù)據(jù)庫存儲的一種結(jié)構(gòu)體)以及刪除不再需要的數(shù)據(jù)分析索引。這即是全部所需的設(shè)置。
9.具備容錯能力。Oracle Database In-Memory與Oracle數(shù)據(jù)庫12c一樣;內(nèi)存列存儲是與行存儲同步的;具備Oracle數(shù)據(jù)庫12c的所有可靠性和災(zāi)難恢復(fù)能力,包括Oracle真正應(yīng)用集群、列存儲信息保護等。
10.隨時應(yīng)對大數(shù)據(jù)。無論應(yīng)用和查詢針對的數(shù)據(jù)庫體量再大、數(shù)據(jù)分析索引的使用再頻繁還是查詢運行時間再長,Oracle Database In-Memory都依然能提供實時數(shù)據(jù)分析。Oracle Database In-Memory對數(shù)據(jù)庫大小沒有限制。
11.支持多種不同查詢。即是企業(yè)需要在不斷增加的企業(yè)信息中為無限多的業(yè)務(wù)問題尋求答案,Oracle Database In-Memory都能即時提供查詢結(jié)果。
12.雙格式架構(gòu)提高靈活性。Oracle Database In-Memory面向運行OLTP及業(yè)務(wù)數(shù)據(jù)分析的關(guān)鍵任務(wù)數(shù)據(jù)庫和應(yīng)用。將交易處理數(shù)據(jù)庫和報告數(shù)據(jù)庫分開,一直是優(yōu)化OLTP及數(shù)據(jù)分析采取的方法,但其代價是需維護單獨的系統(tǒng)硬件、軟件以及同步這些系統(tǒng)的流程。憑借Oracle Database In-Memory,客戶可以合并交易和報告數(shù)據(jù)庫,使數(shù)據(jù)庫能夠通過一個云中托管的數(shù)據(jù)庫示例,進行縱向擴展、交易處理及數(shù)據(jù)分析查詢,在移動應(yīng)用中提供高速交易處理,即時給出結(jié)果。