当前位置:网站首页>第五章 使用In-Memory表达式优化查询(IM 5.1)
第五章 使用In-Memory表达式优化查询(IM 5.1)
2022-04-23 11:37:00 【Grainger】
上接IM 4.8。本章为IM系列第五章第一部分。
在IM列存储的上下文中,表达式是一个或多个值,运算符以及解析为值的SQL或PL / SQL函数(仅DETERMINISTIC
)的组合。
表达式统计存储(ESS)自动跟踪经常评估(“热”)表达式的结果。您可以使用DBMS_INMEMORY_ADMIN
包来捕获热表达式,并将它们填充为隐藏的虚拟列,或删除其中的一些或全部。
此部分包含以下主题:
- 关于IM表达式 默认情况下,
DBMS_INMEMORY_ADMIN.IME_CAPTURE_EXPRESSIONS
过程标识并填充“热”表达式,称为In-Memory表达式(IM表达式)。 - 配置IM表达式用法 (可选)使用
INMEMORY_EXPRESSIONS_USAGE
选择哪些类型的IM表达式有资格进行填充,或禁用所有IM表达式的填充。 - 捕获和填充IM表达式
IME_CAPTURE_EXPRESSIONS
过程捕获并填充指定时间范围内数据库中20个最常访问(“最热”)的表达式。IME_POPULATE_EXPRESSIONS
过程强制在最近一次调用DBMS_INMEMORY_ADMIN.IME_CAPTURE_EXPRESSIONS
中捕获的表达式。 - 删除IM表达式 The
DBMS_INMEMORY_ADMIN.IME_DROP_ALL_EXPRESSIONS
procedure drops allSYS_IME
expression virtual columns in the database. TheDBMS_INMEMORY.IME_DROP_EXPRESSIONS
procedure drops a specified set ofSYS_IME
virtual columns from a table.
关于IM表达式
默认情况下,DBMS_INMEMORY_ADMIN.IME_CAPTURE_EXPRESSIONS
过程标识并填充“热”表达式,称为In-Memory表达式(IM表达式)。
IM表达式实现为隐藏虚拟列,但是以与非虚拟列相同的方式访问。为了存储具体化表达式,IM列存储使用特殊的压缩格式,如fixed-width vectors和带有fixed-width代码的字典编码。
Oracle数据库自动标识IM列存储中作为填充的候选对象的表达式。在DBA_IM_EXPRESSIONS.COLUMN_NAME
中,IM表达式列具有前缀SYS_IME
。您不能直接创建SYS_IME
列。例如,考虑以下查询,它指定两个表达式,别名为weekly_sal
和ann_comp
:
SELECT employee_id, last_name, salary, commission_pct,
ROUND(salary*12/52,2) as "weekly_sal",
12*(salary*NVL(commission_pct,0)+salary) as "ann_comp"
FROM employees
ORDER BY ann_comp;
算术表达式ROUND(salary*12/52,2)
和12*(salary*NVL(commission_pct,0)+salary)
是计算密集型和经常性的,这使得它们成为隐藏的IM表达列的候选。
DBMS_INMEMORY_ADMIN
包是管理IM表达式的主要接口:
· 要使数据库标识IM表达式并在下次重新填充期间将它们添加到各自的表中,请使用IME_CAPTURE_EXPRESSIONS
。
· 要使数据库标识IM表达式并在下次重新填充期间将它们添加到各自的表中,请使用IME_POPULATE_EXPRESSIONS
。
· 要删除SYS_IME
列,请使用DBMS_INMEMORY_ADMIN.IME_DROP_ALL_EXPRESSIONS
或DBMS_INMEMORY.IME_DROP_EXPRESSIONS
。
此部分包含以下主题:
- IM表达式的目的 IM表达式通过预先计算计算密集表达式来加速大数据集的查询速度。 IM表达式特别有利于经常执行的表连接,映射和谓词评估。
- IM表达式如何工作 要将表达式标识为IM表达式的候选,数据库将查询ESS。优化器使用ESS来维护有关特定表的表达式计算的统计信息。
- IM表达式的用户界面
DBMS_INMEMORY_ADMIN
包,DBMS_INMEMORY
包和INMEMORY_EXPRESSIONS_USAGE
初始化参数控制IM表达式的行为。 - IM表达式的基本任务
INMEMORY_EXPRESSIONS_USAGE
的默认设置允许数据库使用动态和静态IM表达式。必须使用DBMS_INMEMORY_ADMIN
填充IM列存储中的表达式。
未完待续。
以下是IM系列内容:
第一章 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 第四部分)
第四章 为IM 启用填充对象之启用和禁用表空间的IM列存储(IM 4.5)
第四章 为IM 启用填充对象之强制填充In-Memory对象:教程(IM 4.7)
第四章 为IM 启用填充对象之为IM列存储启用ADO(IM 4.8)
山东Oracle用户组(Shandong Oracle User Group),简称:SDOUG,是一个充满朝气、年轻的非营利性组织,旨在为济南及周边地区技术爱好者提供一个交流平台。SDOUG会不定期组织线下技术分享活动,促进本地区及周边IT技术的发展、帮助技术爱好者提高自己。分享技术、分享快乐,SDOUG在路上。
版权声明
本文为[Grainger]所创,转载请带上原文链接,感谢
https://cloud.tencent.com/developer/article/1986079
边栏推荐
- Learn go language 0x05: the exercise code of map in go language journey
- 2022爱分析· 工业互联网厂商全景报告
- Application of remote integrated monitoring system in power distribution room in 10kV prefabricated cabin project
- 解析性能良好的机器人使用守则
- stylecloud ,wordcloud 库学习及使用例子
- 实践数据湖iceberg 第三十课 mysql->iceberg,不同客户端有时区问题
- Siri gave the most embarrassing social death moment of the year
- 探究机器人教育的器材与教学
- kettle复制记录到结果和从结果获取记录使用
- GPU, CUDA,cuDNN三者的关系总结
猜你喜欢
积极参与中学机器人竞赛的意义
Nacos Basics (5): getting started with Nacos configuration
Nacos Foundation (7): Configuration Management
Tensorflow uses keras to create neural networks
QT 64 bit static version display gif
解读机器人编程课程的生物认知度
Siri gave the most embarrassing social death moment of the year
nacos基础(8):登录管理
Get things technology network optimization - CDN resource request Optimization Practice
2022 love analysis · panoramic report of industrial Internet manufacturers
随机推荐
Database design of simple voting system
Résumé de la relation entre GPU, cuda et cudnn
tensorflow常用的函数
Applet payment
Analyze the rules for the use of robots with good performance
qt 64位静态版本显示gif
让中小学生在快乐中学习的创客教育
Nacos Foundation (8): login management
oh-my-lotto
Nacos Basics (5): getting started with Nacos configuration
赛微微电科创板上市破发:跌幅达26% 公司市值44亿
汇编语言 运行环境设置等教程链接整理
5个免费音频素材网站,建议收藏
nacos基础(8):登录管理
Blog post navigation (real-time update)
Docker MySQL master-slave backup
PCB的注意事项
Learn go language 0x04: Code of exercises sliced in go language journey
IFLYTEK's revenue in 2021 was 18.3 billion yuan: a year-on-year increase of 41% and a net profit of 1.556 billion yuan
Link sorting of tutorials such as assembly language running environment setting