小谈12c的in memory option

(1) in memory option(以下简称imo)将随着12.1.0.2发布

(2)in memory option不会取代TimesTen(以下简称TT),因为这是2种层面的产品,TT还是会架在DB层之前,和应用紧密相连,为应用提供缓存,imo在DB层,可以做到高可用如RAC,DG等一些TT无法实现的架构。另外同样道理,imo也不会替代Exalytics。

(3)imo引入了、或者说学习了列存储DB,在内存的extend存储每列的最大最小值,类似Exadata中的Exadata Storage Index on every column方式进行列存储,oracle称之为:In-Memory Column Store Storage Index。

(4)Oracle In-Memory Columnar Compression,提供2倍到10倍的压缩率。

(5)执行计划有新的表达:table access in memory full。类似Exadata中的table access storage full。

(6)表连接中将使用布隆过滤和hash连接。

(7)需要几个初始化参数开启imo,在12.1.0.2中show parameter memory即可看到,如inmemory_query可以在system或session级别开启imo功能。会有几个新的v$im开头的视图可以查询在memory中的对象,如v$IM_SEGMENTS,v$IM_USER_SEGMENTS.

(8)对已OLTP,对于DML操作和原来一样。当DML修改时,在内存中的列存储,会标记为stale,并且会copy变动的记录到Transaction Journal。注:存储在内存中的列是永远保持最新的。读一致性会将列的内容和Transaction Journal进行merge,在个merge操作是online操作的。

(9)in memory option对数据库crash重启后对外提供服务的速度可能会有影响,虽然行存储的数据可以对外提供服务,但是load数据到内存中的列存储还是需要一定的时间。

(10)imo最厉害的一点是对application完全透明,你可以完全不做任何修改,就获得巨大的效率。

相关文章

一条评论

  1. 表连接中将使用布隆过滤和hash连接: 实际测试(大表与小表连接),内存数据库的布隆过滤和hash连接,怎么比使用索引要慢很多很多

回复 rb 取消回复

您的电子邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据