Oracle DB In-Memory是预装在Oracle Database 12c(12.1.0.2之后的版本)中的,不需要安装其他软件或者是重新编译现有的的数据库软件。这是因为In-Memory选项是作为SGA的一个新组件无缝集成在Oracle Database软件内核中的,所以如果Oracle Database已经安装,则Oracle DB In-Memory同时也已安装。In-Memory store默认是不开启的,但是可以简单通过几个步骤来开启改功能。
比较重要的一点是DB In-Memory的开启是在实例级别的,同时对于要存储到In-memory的objects需要手动指定,否则是不会自动存储到In-Memory Area的。
In-Memory Area是SGA中用列式存储的方式来存储数据的一个静态池。在没有这个特性之前,oracle的数据全部采用行形式进行存储(除EHCC压缩之外),而在In-Memory Area中数据以列式进行存储,通过这种存储方式在某些业务场景中提升扫描性能,如:出报表等。
In-Memory Area的大小通过参数INMEMORY_SIZE来进行控制的,改参数默认为0,表示DB In-Memory被禁用。
数据库当前正在使用的INMEMORY_SIZE参数可以通过v$parameter视图进行查看,同时在v$sga视图中也可以看到。In-Memory column存储在一个静态池当中,所以对于