云和恩墨独家抢先测试In-Memory Option 特性!

20146月,在Oracle 12c12.1.0.2版本中,Oracle正式发布和引入了基于内存和列式计算的In-Memory Option,这距离Larry2013OOW上发布这一特性已经过去了近10个月。


2014
722日,Oracle正式提供了12.1.0.2版本的数据库产品下载,在OTN上可找到下载链接


In-Memory Option
(以下简称IMO)是在Oracle DB 12c中新添加的选件。它支持两种方式的数据存储格式,即传统的行式存储,以及新的列式存储(Column Store)。针对同一个数据和表,Oracle内存数据库能够同时以两种格式进行存储,并同时进行更新(增删改)并保持一致性。比如增加一行数据到一张表,以列式存储的数据也会同步更新。而通过内存中处理的列式数据,针对分析与报表的性能将提升100倍以上。而在解答为何新的列式存储还能够提升OLTP性能时,Larry解释说它可以删除大量原来用于统计的索引,间接提升了OLTP性能。

 

下图是IMO特性的原理图,通过在内存中开辟一块独立的区域,Oracle将指定的表或者分区以列式内存存储,但是在存储上,仍然以一份行式存储,这就需要额外的内存空间。

 

IMO特性原理图

 

当然,内存对于Oracle来说从来都不是问题,为了配合IMO特性,Oracle此前已经推出了SuperCluster M6-32一体机(如下图),该服务器满配可以配置32 TB内存,这是一个内存快速扩展的时代。


Oracle SuperCluster M6-32

 

Oracle 12c新特性:IMO缓存


对于 Oracle 广为关注的这一新特性,云和恩墨在第一时间进行了测试:


我们通过测试来演示一下In-Memory表的查询性能,以下执行计划中的INMEMORY意味着这是一个IMO查询,逻辑读仅为7,较常规表大大缩减:


 

如果我们将该表移出IMO内存,可以看到其逻辑读变成了4076,执行效率也肯定大大下降:

 


Oracle 12c新特性:IMO列存与压缩


12c In-Memory Option 之中,数据在内存的独立区域中按照列式存储,数据是被压缩存放的,内存与列式压缩可以极大提升查询的性能,下图是 IMO 的示意图:


 


接下来我们来验证一下列存的压缩比率和查询性能。

首先查看IMO的内存分配情况,初始启动数据库,可以看到1MB Pool分配了大约3M的内存空间:

 


接下来将一张数据表设置到内存中,并且通过查询加载。在加载过程中,内存使用增加,直至完成:

 

由此我们可以根据数据表的大小和内存分配空间,计算出内存列式的压缩比率。

BILL表共使用内存大约300M

 

而该表在行式存储上占用了 952 MB

 


这意味着使用列存,使得存储空间压缩到了原来的
30%,这是一个计费的测试数据表,在使用IMO查询,全表扫描仅用了80ms就完成了查询:

 


在以下测试中,我们创建一个非IMO对象,基于一个字段进行Distinct查询,在查询结果中,响应时间分别为1320 ms(行存)和70 ms(列存),也有19倍的响应差距:

 

 

备注:经原作者同意,参考(引用)文章如下

Oracle 12c新特性:IN-Memory Option - 缓存与参数》盖国强

Oracle 12c新特性:IN-Memory Option - 列存与压缩》盖国强

《内存数据库搭配内存一体机 甲骨文再度发力内存计算》孙瑞

《关于DB In-Memory Option你必须知道的17个问题》张乐奕



云和恩墨

国内数据服务行业领导者

整合·优化·咨询

 

联系我们

电话:010-59003186-8019

邮件:marketing@enmotech.com

新浪微博:云和恩墨                  腾讯微信:enmotech
   


 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29715045/viewspace-1247041/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/29715045/viewspace-1247041/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值