当前位置:网站首页>第四章 为IM 启用填充对象之在NO INMEMORY表上指定INMEMORY列属性:示例(IM-4.4 第四部分)
第四章 为IM 启用填充对象之在NO INMEMORY表上指定INMEMORY列属性:示例(IM-4.4 第四部分)
2022-04-23 11:37:00 【Grainger】
第一章 Oracle Database In-Memory 相关概念(IM-1.1)
第一章 Oracle Database In-Memory 相关概念(续)(IM-1.2)
第二章 Oracle Database In-Memory 体系结构(上) (IM-2.1)
第二章 IM 体系结构:CPU架构:SIMD向量处理(IM-2.3)
第四章 为In-Memory 启用填充对象(IM-4.1 第一部分)
第四章 为In-Memory 启用填充对象(IM-4.2 第二部分)
第四章 为IM 启用填充对象之启用和禁用列(IM-4.3 第三部分) 本篇为IM系列的第四章:在NO INMEMORY表上指定INMEMORY列属性:示例(IM-4.4 第 部分)
在NO INMEMORY表上指定INMEMORY列属性:示例
从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 如下:
CREATE TABLE t (c1 NUMBER, c2 NUMBER, c3 NUMBER)
NO INMEMORY -- this clause specifies the table itself as NO INMEMORY
PARTITION BY LIST (c1)
( PARTITION p1 VALUES (0),
PARTITION p2 VALUES (1),
PARTITION p3 VALUES (2) );
表t是 NO INMEMORY。该表由列c1上的列表分区,并且具有三个分区:p1,p2和p3。
2. 查询表中列的压缩(包括样例输出):
COL TABLE_NAME FORMAT a20
COL COLUMN_NAME FORMAT a20
SELECT TABLE_NAME, COLUMN_NAME, INMEMORY_COMPRESSION
FROM V$IM_COLUMN_LEVEL
WHERE TABLE_NAME = 'T'
ORDER BY COLUMN_NAME;
no rows selected
如输出所示,没有设置列级别INMEMORY 属性。
3. 要确保列c3从未填充,请将NO INMEMORY 属性应用于列c3:
ALTER TABLE t NO INMEMORY (c3);
4. 查询表中列的压缩(包括样例输出):
SELECT TABLE_NAME, COLUMN_NAME, INMEMORY_COMPRESSION
FROM V$IM_COLUMN_LEVEL
WHERE TABLE_NAME = 'T'
ORDER BY COLUMN_NAME;
TABLE_NAME COLUMN_NAME INMEMORY_COMPRESSION
-------------------- -------------------- --------------------
T C1 DEFAULT
T C2 DEFAULT
T C3 NO INMEMORY
数据库已记录c3的NO INMEMORY属性。其他列使用默认压缩。
5. 将分区p3指定为INMEMORY:
ALTER TABLE t
MODIFY PARTITION p3
INMEMORY PRIORITY CRITICAL;
因为列 c3以前被指定为 NO INMEMORY,所以分区p3的初始填充将不包括列c3。
6. 将整个表指定为INMEMORY:
ALTER TABLE t INMEMORY;
7. 查询表中列的压缩(包括样例输出):
SELECT TABLE_NAME, COLUMN_NAME, INMEMORY_COMPRESSION
FROM V$IM_COLUMN_LEVEL
WHERE TABLE_NAME = 'T'
ORDER BY COLUMN_NAME;
TABLE_NAME COLUMN_NAME INMEMORY_COMPRESSION
-------------------- -------------------- --------------------------
T C1 DEFAULT
T C2 DEFAULT
T C3 NO INMEMORY
数据库保留了列 c3的 NO INMEMORY 设置。其他列使用默认压缩。
- 对列
c1和c2应用不同的压缩级别:
ALTER TABLE t
INMEMORY MEMCOMPRESS FOR CAPACITY HIGH (c1)
INMEMORY MEMCOMPRESS FOR CAPACITY LOW (c2);
9. 查询表中列的压缩(包括样例输出):
SELECT TABLE_NAME, COLUMN_NAME, INMEMORY_COMPRESSION
FROM V$IM_COLUMN_LEVEL
WHERE TABLE_NAME = 'T'
ORDER BY COLUMN_NAME;
TABLE_NAME COLUMN_NAME INMEMORY_COMPRESSION
-------------------- -------------------- --------------------------
T C1 FOR CAPACITY HIGH
T C2 FOR CAPACITY LOW
T C3 NO INMEMORY
每列现在具有不同的压缩级别。
10. 将整个表指定为NO INMEMORY:
ALTER TABLE t NO INMEMORY;
11. 查询表中列的压缩(包括样例输出):
SELECT TABLE_NAME, COLUMN_NAME, INMEMORY_COMPRESSION
FROM V$IM_COLUMN_LEVEL
WHERE TABLE_NAME = 'T'
ORDER BY COLUMN_NAME;
no rows selected
因为整个表指定为 NO INMEMORY,所以数据库删除所有列级 INMEMORY属性。
山东Oracle用户组(Shandong Oracle User Group),简称:SDOUG,是一个充满朝气、年轻的非营利性组织,旨在为济南及周边地区技术爱好者提供一个交流平台。SDOUG会不定期组织线下技术分享活动,促进本地区及周边IT技术的发展、帮助技术爱好者提高自己。分享技术、分享快乐,SDOUG在路上。
版权声明
本文为[Grainger]所创,转载请带上原文链接,感谢
https://cloud.tencent.com/developer/article/1986074
边栏推荐
- 抓包整理————tcp 协议[八]
- 激活函数之relu函数
- Redis optimization series (II) redis master-slave principle and master-slave common configuration
- Advanced file IO of system programming (13) -- IO multiplexing - Select
- Interpreting the art created by robots
- Learn go language 0x06: Fibonacci closure exercise code in go language journey
- Change exchange II - [leetcode]
- Nacos Foundation (6): Nacos configuration management model
- Laravel admin form validation
- Tclerror: no display name and no $display environment variable
猜你喜欢

怎么进行固定资产盘点,资产盘点报告如何一键生成

创客教育中的统筹方案管理模式

GPU, CUDA,cuDNN三者的关系总结

R-drop: a more powerful dropout regularization method

rebbitMQ的简单搭建

Learn go language 0x04: Code of exercises sliced in go language journey

Interpretation of biological recognition in robot programming course

Summary of the relationship among GPU, CUDA and cudnn

解析社交性机器人对基础科学的作用

Sofa weekly | excellent Committee of the year, contributor of this week, QA of this week
随机推荐
MIT: label every pixel in the world with unsupervised! Humans: no more 800 hours for an hour of video
博客文章导航(实时更新)
Redis optimization series (II) redis master-slave principle and master-slave common configuration
thinkphp 添加图片文字水印生成带二维码的推广海报
MySQL Router重装后重新连接集群进行引导出现的——此主机中之前已配置过的问题
When the activity is in progress! Click the link to join the live studio to participate in "can AI really save energy?" Let's have a discussion!
使用连接组优化连接 (IM 6)
实践数据湖iceberg 第三十课 mysql->iceberg,不同客户端有时区问题
Learn go language 0x05: the exercise code of map in go language journey
MySQL 的主从复制配置
Nacos Basics (5): getting started with Nacos configuration
Tensorflow uses keras to create neural networks
MQ is easy to use in laravel
ES6 learning notes II
oh-my-lotto
nacos基础(6):nacos配置管理模型
Learn go language 0x06: Fibonacci closure exercise code in go language journey
全网最细的短网址系统设计与实战
怎么进行固定资产盘点,资产盘点报告如何一键生成
Share two practical shell scripts