从OracleDatabase 12c第2版(12.2)开始,可以在尚未指定为 INMEMORY 的对象的列级别指定 INMEMORY 子句。
在以前的版本中,列级 INMEMORY 子句仅在 INMEMORY 表或分区上指定时有效。此限制意味着在将表或分区与 INMEMORY 子句关联之前,该列无法与 INMEMORY 子句相关联。
从OracleDatabase 12c Release 2(12.2)开始,如果在列级别指定INMEMORY 子句,则数据库将记录指定列的属性。如果表是NO INMEMORY(缺省值),则在将表或分区指定为INMEMORY之前,列级属性不会影响查询表的方式。如果将表本身标记为NO INMEMORY,则数据库将删除任何现有的列级属性。
在本示例中,您的目标是确保分区表中的列c3永远不会填充到IM列存储中。您执行以下步骤:
1、创建分区表 t 如下:
表t是 NO INMEMORY。该表由列c1上的列表分区,并且具有三个分区:p1,p2和p3。
2、查询表中列的压缩(包括样本输出):
如输出所示,没有设置列级别INMEMORY属性。
3、要确保列c3从未填充,请将NO INMEMORY属性应用于列c3:
4、查询表中列的压缩(包括样本输出):
数据库已记录c3的NO INMEMORY属性。其他列使用默认压缩。
5、将分区p3指定为INMEMORY:
因为列 c3以前被指定为NO INMEMORY,所以分区p3的初始填充将不包括列c3。
6、将整个表指定为INMEMORY:
7、查询表中列的压缩(包括样本输出):
数据库保留了列 c3的NO INMEMORY设置。其他列使用默认压缩。
8、对列c1和c2应用不同的压缩级别:
9、查询表中列的压缩(包括样本输出):
每列现在具有不同的压缩级别。
10、将整个表指定为NO INMEMORY:
11、查询表中列的压缩(包括样本输出):
因为整个表指定为NO INMEMORY,所以数据库删除所有列级INMEMORY属性。
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有