配置使用IM表达式的基本任务
2017-10-31 09:38
399 查看
原创2017-10-29 Jack山东Oracle用户组
山东Oracle用户组
山东Oracle用户组
微信号
sdougwx
功能介绍
SDOUG官方订阅号,分享技术、分享快乐、SDOUG在路上
上接IM 5.6。本章为IM系列第五章 使用In-Memory表达式优化查询第七部分配置使用IM表达式的基本任务。
通常,您按以下顺序执行IM表达式任务:
· (可选)更改数据库可以使用的IM表达式的类型。
请参阅“配置使用IM表达式”。
· 捕获并填充IM表达式。
请参阅“捕获和填充IM表达式”。
· (可选)删除一些或所有IM表达式。
请参阅“删除IM表达式”。
先决条件
要使数据库能够使用IM表达式,必须满足以下条件:
·
· 初始化参数
注:
在Oracle Real ApplicationsCluster(RAC)数据库中,
要配置使用IM表达式:
1. 以具有适当权限的用户身份登录数据库。
2. 要配置使用IM表达式,请使用
·
·
·
·
示例5-1禁用IM表达式
以下语句禁用IM列存储中IM表达式的存储:
无论何时调用
StatisticsStore 简称:ESS),并仅在IM列存储中至少部分填充的表上考虑表达式。数据库将20个最热表达式添加到其各自的表中作为隐藏的虚拟列,前缀为字符串
如果不调用
在内部,
先决条件
要使数据库能够捕获IM表达式,必须满足以下条件:
·
·
· 初始化参数COMPATIBLE的值必须设置为12.2.0或更高。
捕获和填充IM表达式:
1. 以具有适当权限的用户身份登录数据库。
2. 使用以下任何参数执行
·
·
3. (可选)执行
示例5-2捕获过去24小时内的前20个IM表达式
此示例仅使用最后一天收集的统计信息捕获IM表达式,然后强制立即填充:
删除
对于具有
先决条件
要删除IM表达式,以下条件必须为true:
·
·
·
删除IM表达式:
1. 以具有适当权限的用户身份登录数据库。
2. 执行
如果执行
·
·
·
示例5-3删除表中的所有IM表达式
此示例删除
未完待续。
以下是IM系列文章内容:
In-Memory手册之:前言(IM-前言)
第一章
Oracle Database In-Memory 相关概念(IM-1.1)
第一章
Oracle Database In-Memory 相关概念(续)(IM-1.2)
第二章
Oracle Database In-Memory 体系结构(上) (IM-2.1)
第二章
In-Memory 体系结构 (IM-2.2)
第二章 IM
体系结构:CPU架构:SIMD向量处理(IM-2.3)
第三章
启用和调整IM列存储的大小(IM-3.1)
第四章
为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列存储(IM 4.6)
第四章
为IM 启用填充对象之强制填充In-Memory对象:教程(IM 4.7)
第四章
为IM 启用填充对象之为IM列存储启用ADO(IM 4.8)
第五章
使用In-Memory表达式优化查询(IM 5.1)
IM表达式的目的(IM
5.2)
IM表达式如何工作(IM
5.3)
数据库如何填充IM表达式(IM
5.4)
IMEU如何与IMCU相关联(IM
5.5)
用户接口和IM表达式(IM
5.6)
山东Oracle用户组
山东Oracle用户组
微信号
sdougwx
功能介绍
SDOUG官方订阅号,分享技术、分享快乐、SDOUG在路上
上接IM 5.6。本章为IM系列第五章 使用In-Memory表达式优化查询第七部分配置使用IM表达式的基本任务。
INMEMORY_EXPRESSIONS_USAGE的默认设置使数据库能够同时使用动态和静态IM表达式。您必须使用
DBMS_INMEMORY_ADMIN填充IM列存储中的表达式。
通常,您按以下顺序执行IM表达式任务:
· (可选)更改数据库可以使用的IM表达式的类型。
请参阅“配置使用IM表达式”。
· 捕获并填充IM表达式。
请参阅“捕获和填充IM表达式”。
· (可选)删除一些或所有IM表达式。
请参阅“删除IM表达式”。
配置使用IM表达式
(可选)选择哪些类型的IM表达式符合条件,或禁用所有IM表达式的填充。先决条件
要使数据库能够使用IM表达式,必须满足以下条件:
·
INMEMORY_SIZE初始化参数设置为非零值。
· 初始化参数
COMPATIBLE的值设置为12.2.0或更高。
注:
在Oracle Real ApplicationsCluster(RAC)数据库中,
INMEMORY_EXPRESSIONS_USAGE初始化参数在每个数据库实例上不需要都相同的值。每个IMCU独立列出虚拟列。每个IMCU可以基于初始化参数值和填充或重新填充IMCU时存在的虚拟列来实现不同的表达式。
要配置使用IM表达式:
1. 以具有适当权限的用户身份登录数据库。
2. 要配置使用IM表达式,请使用
ALTERSYSTEM语句将
INMEMORY_EXPRESSIONS_USAGE设置为以下值之一:
·
ENABLE(默认)—启用动态和静态IM表达式
·
STATIC_ONLY—仅启用静态IM表达式
·
DYNAMIC_ONLY—仅启用动态IM表达式
·
DISABLE—禁用所有IM表达式
示例5-1禁用IM表达式
以下语句禁用IM列存储中IM表达式的存储:
ALTER SYSTEM SET INMEMORY_EXPRESSIONS_USAGE='DISABLE';
捕获和填充IM表达式
IME_CAPTURE_EXPRESSIONS过程在指定的时间范围内捕获并填充数据库中最常访问的20个(“最热”)表达式。过程强制在最近调用
DBMS_INMEMORY_ADMIN.IME_CAPTURE_EXPRESSIONS中捕获的表达式。
无论何时调用
IME_CAPTURE_EXPRESSIONS过程,数据库都会查询表达式评估的统计信息存储库(Expression
StatisticsStore 简称:ESS),并仅在IM列存储中至少部分填充的表上考虑表达式。数据库将20个最热表达式添加到其各自的表中作为隐藏的虚拟列,前缀为字符串
SYS_IME,并应用默认的
INMEMORY列压缩子句。如果在上一次调用期间添加的任何
SYS_IME列不再在最新的前20个列表中,则数据库将它们标记为
NOINMEMORY。
如果不调用
IME_POPULATE_EXPRESSIONS,则在重新填充其父IMCU时,数据库会逐渐重新填充
SYS_IME列。如果表未重新填充,则数据库不会重新填充由
IME_CAPTURE_EXPRESSIONS过程捕获的新
SYS_IME列。
IME_POPULATE_EXPRESSIONS通过强制重新填充来解决此问题。
在内部,
IME_POPULATE_EXPRESSIONS过程调用具有
INMEMORY属性的
SYS_IME列的所有表的
DBMS_INMEMORY.REPOPULATE。要在指定的表子集中填充
SYS_IME列,请使用
DBMS_INMEMORY.REPOPULATE而不是
DBMS_INMEMORY_ADMIN.IME_POPULATE_EXPRESSIONS。
先决条件
要使数据库能够捕获IM表达式,必须满足以下条件:
·
INMEMORY_EXPRESSIONS_USAGE初始化参数必须设置为除
DISABLE之外的值。
·
INMEMORY_SIZE初始化参数设置为非零值。
· 初始化参数COMPATIBLE的值必须设置为12.2.0或更高。
捕获和填充IM表达式:
1. 以具有适当权限的用户身份登录数据库。
2. 使用以下任何参数执行
DBMS_INMEMORY_ADMIN.IME_CAPTURE_EXPRESSIONS:
·
CUMULATIVE— 创建数据库后,数据库会考虑所有表达式统计信息。
·
CURRENT— 数据库仅考虑过去24小时的表达式统计信息。
3. (可选)执行
DBMS_INMEMORY_ADMIN.IME_POPULATE_EXPRESSIONS强制立即显示最新的IM表达式。
示例5-2捕获过去24小时内的前20个IM表达式
此示例仅使用最后一天收集的统计信息捕获IM表达式,然后强制立即填充:
EXEC DBMS_INMEMORY_ADMIN.IME_CAPTURE_EXPRESSIONS('CURRENT');
EXEC DBMS_INMEMORY_ADMIN.IME_POPULATE_EXPRESSIONS();
DBA_IM_EXPRESSIONS的以下查询显示当前填充了两个IM表达式(提供了示例输出):
COL OWNER FORMAT a6
COL TABLE_NAME FORMAT a9
COL COLUMN_NAME FORMAT a25
SET LONG 50
SET LINESIZE 150
SELECT OWNER, TABLE_NAME, COLUMN_NAME, SQL_EXPRESSION
FROM DBA_IM_EXPRESSIONS;
OWNER TABLE_NAM COLUMN_NAME SQL_EXPRESSION
------ --------- ------------------------- ---------------------------------------------
HR EMPLOYEES SYS_IME00010000001746FD 12*("SALARY"*NVL("COMMISSION_PCT",0)+"SALARY")
HR EMPLOYEES SYS_IME00010000001746FE ROUND("SALARY"*12/52,2)
删除IM表达式
DBMS_INMEMORY_ADMIN.IME_DROP_ALL_EXPRESSIONS过程删除数据库中的所有
SYS_IME表达式虚拟列。
DBMS_INMEMORY.IME_DROP_EXPRESSIONS过程从表中删除一组指定的
SYS_IME虚拟列。
删除
SYS_IME列的典型原因是空间和性能。表的
SYS_IME列的最大数量,不管属性是
INMEMORY还是
NOINMEMORY,,都是50.在达到表的50个表达式限制之后,数据库将不会添加新的
SYS_IME列。要为新表达式创建空间,必须使用
DBMS_INMEMORY.IME_DROP_EXPRESSIONS或
DBMS_INMEMORY_ADMIN.IME_DROP_ALL_EXPRESSIONS过程手动删除
SYS_IME列。
IME_DROP_ALL_EXPRESSIONS过程从所有表中删除所有
SYS_IME列,而不管它们是否具有
INMEMORY属性。实际上,该过程充当数据库范围的重置按钮。
对于具有
SYS_IME列的段,使用
IME_DROP_ALL_EXPRESSIONS触发所有IMEU和IMCU的下降。例如,如果50个填充表每个都有一个
SYS_IME列,则
IME_DROP_ALL_EXPRESSIONS将从IM列存储中删除所有50个表。要再次填充这些段,您必须使用
DBMS_INMEMORY.POPULATE过程或执行全表扫描。
先决条件
要删除IM表达式,以下条件必须为true:
·
INMEMORY_EXPRESSIONS_USAGE初始化参数设置为除
DISABLE之外的值。
·
INMEMORY_SIZE初始化参数设置为非零值。
·
COMPATIBLE初始化参数设置为12.2.0或更高。
删除IM表达式:
1. 以具有适当权限的用户身份登录数据库。
2. 执行
DBMS_INMEMORY_ADMIN.IME_DROP_ALL_EXPRESSIONS或
DBMS_INMEMORY.IME_DROP_EXPRESSIONS。
如果执行
IME_DROP_EXPRESSIONS,则指定以下参数:
·
schema_name—包含In-Memory表的
schema的名称
·
table_name—In-Memory表名称
·
column_name—
SYS_IME列的名称。默认情况下,该值为null,它指定此表中的所有
SYS_IME列。
示例5-3删除表中的所有IM表达式
此示例删除
hr.employees表中的所有IM表达式:
EXEC DBMS_INMEMORY.IME_DROP_EXPRESSIONS('hr', 'employees');
未完待续。
以下是IM系列文章内容:
In-Memory手册之:前言(IM-前言)
第一章
Oracle Database In-Memory 相关概念(IM-1.1)
第一章
Oracle Database In-Memory 相关概念(续)(IM-1.2)
第二章
Oracle Database In-Memory 体系结构(上) (IM-2.1)
第二章
In-Memory 体系结构 (IM-2.2)
第二章 IM
体系结构:CPU架构:SIMD向量处理(IM-2.3)
第三章
启用和调整IM列存储的大小(IM-3.1)
第四章
为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列存储(IM 4.6)
第四章
为IM 启用填充对象之强制填充In-Memory对象:教程(IM 4.7)
第四章
为IM 启用填充对象之为IM列存储启用ADO(IM 4.8)
第五章
使用In-Memory表达式优化查询(IM 5.1)
IM表达式的目的(IM
5.2)
IM表达式如何工作(IM
5.3)
数据库如何填充IM表达式(IM
5.4)
IMEU如何与IMCU相关联(IM
5.5)
用户接口和IM表达式(IM
5.6)
相关文章推荐
- 使用spring@Schedule注解定时任务时将时间表达式写入配置文件中的方法
- [BAT][JAVA]定时任务之-Quartz使用篇(通过这个配置可以知道在做Quartz的时候需要的jar文件/Cron表达式使用语法/常用Cron表达式)
- cron表达式详解【spring配置定时任务可使用】
- 系统管理指南:基本管理 第21 章• 使用Sun PatchManager 管理Solaris 修补程序(任务)
- 系统管理指南:基本管理 第22 章• 使用patchadd 命令管理Solaris 修补程序(任务)~附录A • SMF 服务
- 使用克隆配置任务配置边缘传输服务器角色
- 系统管理指南:基本管理 第22 章• 使用patchadd 命令管理Solaris 修补程序(任务)~附录A • SMF 服务
- hibernate 基本配置和使用
- FCKeditor基本配置优化修改使用方法
- WebWork之--使用fileUpload interceptor实现文件上传[基本配置+注意事项]
- PHP中Smarty配置基本信息,供初学者使用,我也是个初学者
- [转]在Windows下使用MingGW[GCC+OpenMP]和CodeBlocks开发多核应用基本环境配置
- Hibernate Search基本配置和使用
- 使用克隆配置任务配置边缘传输服务器角色
- Cisco PIX防火墙基本配置命令使用
- 系统管理指南:基本管理 第19 章• 使用软件包命令管理软件(任务)
- 防火墙基本配置任务列表
- 如何使用svconfigeditor.exe编辑WCF Service配置文件-配置一个基本的Endpoint(一)
- XDoclet下生成struts配置的基本任务手册