5分钟精通12C inmemory插件


12c的alter table richard.oracle inmemory其实就是把表放到一个单独的内存空间,而存储的方式是列存储


InMemory可以针对如下级别进行操作
Column
Table
Materialized view
Tablespace
Partition

InMemory数据库参数
INMEMORY_SIZE 指定IM分配内存大小,默认值为0,如果启动该值最小为100M;如果在CDB环境中使用,CDB级别设置为整个库级别限制,PDB默认继承CDB设置,但是在实际使用中PDB中总数不能超过CDB限制
INMEMORY_FORCE 指定是否允许数据库中对象使用IM,默认是DEFAULT,即可以实现在对象级别定义INMEMORY or NO INMEMORY,如果设置为OFF 即表示表或者物化视图无法使用IM
INMEMORY_CLAUSE_DEFAULT 默认为空,和NO INMEMORY意义相同,表示创建新对象默认不启用IM,如果配置为INMEMORY,表示新创建对象默认启用IM
INMEMORY_QUERY 默认为TRUE,表示查询是否使用IM特性,设置为FALSE表示查询不使用IM特性
INMEMORY_MAX_POPULATE_SERVERS 默认和系统core一致,用途是把你的表中数据写入到IM中
INMEMORY_TRICKLE_REPOPULATE_SERVERS_PERCENT 控制IM中对象数据的重新载入的进程数,该值为INMEMORY_MAX_POPULATE_SERVERS参数的百分比
OPTIMIZER_INMEMORY_AWARE 该参数是控制优化器成本计算时是否考虑IM,默认为TRUE

InMemory有压缩级别和优先级别请参考官方文档


参考语句

ALTERTABLESPACE RichardDEFAULT INMEMORY
   MEMCOMPRESSFORCAPACITY HIGH
   PRIORITY LOW;


对于inmemory有几个需要注意的地方

1什么样的表或分区(对象)应该inmemory(这涉及列存储相对于行存储的优势),好的技术关键还是看怎么用

需要放inmemory的

A query that scans a large number of rows and applies filters that use operators such as the following: =, <, >, and IN
A query that selects a small number of columns from a table or materialized view with a large number of columns,
such as a query that selects five columns from a table with 100 columns
A query that joins a small table to a large table
A query that aggregates data

不需要放inmemory的

Queries with complex predicates
Queries that select a large number of columns
Queries that return a large number of rows
Queries with multiple large table joins



2对象在inmemory占用多少内存评估,当然可能需要考虑数据量的持续增长

可以使用dbms_compression.get_compression_ratio评估

随着IM中对象的增加,当INMEMORY_SIZE不足之时,当IM中的对象不能全部在IM中之时,对其对象操作,会转换成传统数据库操作



3关于priority参数测试

a. 指定PRIORITY不为none也需要访问对象后才能够放入IM中
b. 当IM不足时,PRIORITY级别高的会把级别低的对象刷出IM



4对于inmemory对象可以设置压缩参数,请选用最合理的那个

例如altertable richard.oracle inmemory MEMCOMPRESSFORQUERY HIGH



5对于RAC,需要保证2个参数的设置正确才是真正的开启inmemory


SQL>altersystem set parallel_force_local=falsesid='*';
 
SQL>altersystem set parallel_degree_policy=AUTO sid='*';


资料来源http://www.xifenfei.com/5645.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值