内存技术提高速度、性能和灵活性的12大特性
2014-09-05
多年来,关系型数据库一直在相关表中存储信息,这种表由行和列组成。想像一下大量的电子数据表,包含数百万行的信息,同时还通过数据列将不同的电子数据表联系在一起。
要想了解内存技术怎样加快业务流程,可以听听甲骨文公司首席执行官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,客户可以合并交易和报告数据库,使数据库能够通过一个云中托管的数据库示例,进行纵向扩展、交易处理及数据分析查询,在移动应用中提供高速交易处理,即时给出结果。