该手册实验基础要在实例级别启用IM column store,开启方法参考上篇文章:
链接:http://blog.csdn.net/badly9/article/details/49724983
(一)基础篇
1.对objects开启IM column store
对于objects我们可以使用In-Memory clause来指定是否使用IM column store。这个参数我们可以在Create时进行指定,也可以在创建后使用Alter参数进行指定。同时In-Memory clause参数可以在objects和tablespace级别来进行指定。
1.1 In-Memory Clause
首先来看一下使用In-Memory Clause的语句结构:
指定INMEMORY属性来开启objects的IM column store,对于已经开启IM column store的objects可以修改inmemory_parameters。
指定NO INMEMORY来禁止objects启用IM column store。
INMEMORY_PARAMETERS允许指定附加sub-clauses来扩展objects的In-Memory定义:
priority:这个属性控制objects载入到column store。当有多个objects需要加载到IM column store中时,根据priority的设置来确定优先级进行加载。
MEMCOMPRESS:这个属性控制了table或者columns在IM column store中的压缩级别。默认情况下,数据在IM column store中采用FOR QUERY LOW压缩级别来保证在压缩比和性能方面的平衡。
DUPLICATE:在RAC场景中,每个数据库节点有自己的IM column store。同一个objects可以以副本的形式存在于每一个节点的IM column store中。这个参数的默认值为NO DUPLICATE。这个参数仅仅在EXADATA环境中有效。在单实例和非EXADATA中这个属性不生效。
DISTRIBUTE:这个属性在RAC环境中有效。如果一个objects非常大,无法被加载到一个节点上的IM column store上时,可以分成几个数据片来分别放到rac的几个节点上。这个属性的默认值为AUTO-DISTRIBUTE。由Oracle自己来决定大的objects如何在几个节点的IM column store中进行分布。在单实例中这个参数无效。
对于使用了In-Memory clause的objects的IM属性会被四个原有的数据字典捕获,分别是:*_tables,*segments,*_tab_partitions,*_tab_sub_partitions。同时在视图V$IM_SEGMENTS和V$IM_USER_SEGMENTS中也可进行查看,在以上的数据字典和动态视图中,IM相关属性被分为以下四列:
INMEMORY:用于指示是否objects是INMEMORY还是NO INMEMORY,对应这一列的值分别为ENABLE和DISABLED。
INMEMORY_PRIORITY:用于指示该objects PRIORITY的属性。值分别为:NONE,LOW,MEDIUM,HIGH和CRITICAL。
INMEMORY_COMPRESSION:这个属性对应着objects inmemory_parameters的MEMCOMPRESS属性。
INMEMORY_DUPLICATE和INMEMORY_DISTRIBUTE:这两个分别对应着objects inmemory_parameters的DUPLICATE和DISTRIBUTE属性。
下面通过实验来看一下简单的将一个表放