【12c】新特性:Oracle 12c In-Memory Column Store 内存列存储与压缩

本文介绍了Oracle 12c的In-Memory Column Store(IM列存储)新特性,包括IM列存储的概念、启用方法、压缩方式、数据填充策略以及在数据库、表、列和表空间层面的启用与禁用。实验结果显示,使用IM列存储能显著降低存储空间,提高查询效率。
摘要由CSDN通过智能技术生成

In-Memory Column Store IM列存储是Oracle 12.1.0.2新引入的特性,IM列存储是系统全局区SGA的一个可选部分,它存储表、表分区或其它数据库对象的副本。IM列存储包含在Oracle数据库In-Memory选项中。本部分内容是在Oracle 12.1.0.2版本进行操作。

1 IM列存储

1.1 IM列存储介绍

IM列存储是SGA中一个新的静态池,IM列存储中的数据不以传统的行格式存储,而是以列格式存储,每个列存储为一个单独的结构。IM列存储并不会替代数据库缓冲区缓存,而是作为它的一个补充,因此数据可以以行和列的格式并存在内存中。

要启用IM列存储,必须将INMEMORY_SIZE初始化参数设置为非零值,最小值为100M。可以在以下任意级别启用列存储特性:

  • 物化视图
  • 表空间
  • 分区

1.2 IM列压缩

在IM列存储中,可以对数据进行压缩,并且SQL查询直接在被压缩的数据上执行。IM列存储的压缩方法如下:

在SQL语句中,MEMCOMPRESS关键字之前必须加上INMEMORY关键字。

1.3 IM列存储数据填充

当为IM列存储启用数据库对象时,默认情况下,是由数据库来控制何时在IM列存储中填充数据库对象的数据,当然,也可以通过指定一个优先级别来确定填充填充对列中数据库对象的优先级,SQL语句通过INMEMORY PRIORITY设置优先级别,优先级别包含以下内容:

2 数据库启用IM列存储

在表、表分区、物化视图和表空间启用IM列存储之前,必须为数据库启用IM列存储。数据库启用IM列存储的步骤如下:

1)兼容性设置,确保数据库兼容性是12.1.0或更高级别

SQL> show parameter compatible



NAME TYPE VALUE

------------------------------------ ----------- ------------------------------

compatible string 12.1.0.2.0

noncdb_compatible boolean FALSE

2)设置INMEMORY_SIZE初始化参数为非零值,最小为100M

SQL> alter system set inmemory_size=400M scope=spfile;



System altered.

3)重启数据库,初始化SGA中的IM列存储

SQL> startup

ORACLE instance started.



Total System Global Area 1644167168 bytes

Fixed Size 2925024 bytes

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值