当前位置:网站首页>第四章 为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
边栏推荐
- qt 64位静态版本显示gif
- 博客文章导航(实时更新)
- 汇编语言 运行环境设置等教程链接整理
- Tensorflow使用keras创建神经网络的方法
- Redis学习之五---高并发分布式锁实战
- Maker education for primary and middle school students to learn in happiness
- Sofa weekly | excellent Committee of the year, contributor of this week, QA of this week
- 云呐|固定资产盘点中,支持多种盘点方式(资产清查盘点)
- Write console script by laravel
- How to count fixed assets and how to generate an asset count report with one click
猜你喜欢

Analyze the rules for the use of robots with good performance

Overall plan management mode in maker Education

1.Electron开发环境搭建

解读2022机器人教育产业分析报告

Interpreting the art created by robots

Simple construction of rebbitmq

论坛系统数据库设计

Redis learning 5 - high concurrency distributed lock practice

Tensorflow uses keras to create neural networks

Sofa weekly | excellent Committee of the year, contributor of this week, QA of this week
随机推荐
After the MySQL router is reinstalled, it reconnects to the cluster for boot - a problem that has been configured in this host before
Using Baidu PaddlePaddle EasyDL to accomplish specified target recognition
Sofa weekly | excellent Committee of the year, contributor of this week, QA of this week
Golang Pen & interview 01
Interpreting the art created by robots
Design and practice of the smallest short website system in the whole network
云呐|如何管理好公司的固定资产,固定资产管理怎么做
nacos基础(8):登录管理
实践数据湖iceberg 第三十课 mysql->iceberg,不同客户端有时区问题
Blog post navigation (real-time update)
Write console script by laravel
redis优化系列(二)Redis主从原理、主从常用配置
laravel 永远返回 JSON 响应
Laravel always returns JSON response
tensorflow常用的函数
map<QString, bool> 的使用记录
远程访问家里的树莓派(上)
Tensorflow uses keras to create neural networks
laravel编写Console脚本
R-drop: a more powerful dropout regularization method