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


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