专家经验论,答In-Memory是否支持Column之疑

专家简介

  
 

卢飞

【DBA+社群】北京发起人

 

Oracle 10g OCP,6年Oracle数据库维护经验,对Oracle数据库管理、数据迁移,性能优化有着丰富的实战经验。目前专注于数据库技术及自动化运维方面的研究。

 
 

 

Oracle 在数据库12c (12.1.0.2)版本中提供了In-Memory功能选件,在Oracle数据库中所有启用了In-Memory的对象都存储在以inmemory_size为大小的 Database cache中。

你可以在以下对象级别开启/关闭In-Memory功能:

  • Column
  • Table
  • Materialized view
  • Tablespace
  • Partition

这里我们针对Column来测试一下,看看如何根据表字段使用In-Memory功能。

我们登陆到数据库,并建立一张表

可以根据v$im_column_level视图查询是否有Column级别的IM对象,这里可以看到其实现在没有启用表tab_col_im的In-Memory功能。

如果直接在Column级别指定启用In-Memory功能,是不允许的。

要启用Column级别的In-Memory功能,首先要在Table级别启用

再次查询v$im_column_level视图可以看到C1 C2 C3字段都已经启用In-Memory功能

是否启用Table/Column级别的In-Memory可以使用ALTER TABLE语句进行开启或关闭。

以上演示了Column级别的In-Memory功能如何开启及关闭,其实启用了In-Memory功能的Column也会影响SELECT语句的效率/执行计划。

这里我们对表tab_col_im插入数据

查询全部列的执行计划

查询c3列的执行计划(c3列没有启用In-Memory)

而查询启用In-Memory功能的Column的执行计划中,可以看到使用了TABLE ACCESS INMEMORY FULL。这里也可以看到执行计划中Cost也是不一样的,启用In-Memory功能的Column列查询时会比不启用的成本低很多。

当查询带where条件时执行计划也是不一样的,且可以看到执行计划中的谓词过滤信息也使用了INMEMORY。

最后可以看到Oracle提供的In-Memory功能其实还是比较全面的,可以在数据库不同的对象级别进行设置,最重要的是In-Memory的启用及关闭,是对应用透明的。

时间: 2024-09-18 08:43:20

专家经验论,答In-Memory是否支持Column之疑的相关文章

中国老龄消费需求旺盛专家吁加大对养老产业支持

从1999年至今,中国进入老龄化社会已有12个年头.<2009年度中国老龄事业发展统计公报>显示,2009年,全国60岁及以上老年人口达到1.6714亿,占总人口的12.5%. 中国社会科学院近期发布的<中国财政政策报告2010/2011>透露,2011年以后的30年里,中国人口老龄化将呈现加速发展态势.到2030年,中国65岁以上人口占比将超过日本,届时中国将是全球人口老龄化程度最高的国家. 人口加速老龄化在给我国经济社会发展带来严峻挑战的同时,还带来了巨大的消费市场.早在200

Oracle 12cR2发布,金融行业准备大规模上了

​DBAplus Newsletter第二期资讯中我们已经预告Oracle率先发布了Exadata.SuperCluster版本12c Release 2的发布也拉开了帷幕而在2017年3月1日Oracle终于发布了它的Linux 64版本和Solaris版本包括x86和SPARC架构.  对于很多Oracle DBA来说12c最期待人心的就是12c Release 2的发布了而Linux 64位版本的发布则是一个重头戏.     Oracle12cR2版本跟以前的版本相比多了一个Global

屏幕录像专家好用吗

  [屏幕录像专家V2012操作截图] 屏幕录像专家软件支持开机后自动在后台运行,因此不会被对方发现,还支持远程查看记录.进入本程序界面需要密码验证.屏幕录像专家软件系正规合法的软件,用于监控电脑操作记录.QQ聊天记录.上网记录.主要用于家长对孩童,企业对员工的监督,计算机教室.网吧的监控与管理.请大家不要将本软件与盗号.窃密软件挂钩,安装本软件时请先获得被控电脑主人的授权. 可以将定时屏幕录像专家安装在任何一台电脑上,但它记录生成的文件都经过了加密,直接双击其是不能读取的,您需要用一些专用的读

【Mysql 学习】memory存储引擎

     MEMORY存储引擎用存在内存中的内容来创建表.每个MEMORY表和一个磁盘文件关联起来.文件名由表的名字开始,并且由一个.frm的扩展名来指明它存储的表定义. 要创建一个MEMORY表,可使用如下语句: CREATE TABLE t (i INT) ENGINE = MEMORY;    如它们名字所指明的,MEMORY表被存储在内存中,且默认使用哈希索引.这使得它们非常快,并且对创建临时表非常有用.可是,当服务器关闭之时,所有存储在MEMORY表里的数据被丢失.因为表的定义被存在磁

分布式光伏获政策支持 光伏产业迎薄膜时代

近日,国家发改委.国家能源局发布的<电力发展"十三五"规划>明确提出"十三五"期间,分布式光伏发电要达到6000万千瓦以上的装机规模.数据显示,截至2015年底,我国分布式发电累计装机容量只有606万千瓦.这意味着"十三五"期间,分布式光伏装机规模至少要增九倍以上,我国光伏产业格局将又一次发生变革,这一次走上潮头的将是薄膜电池组件. 薄膜电池组件轻.薄.柔,应用优势强 国家能源局新能源和可再生能源司副司长梁志鹏不久前向媒体表示,&qu

《Node.js入门经典》一1.5 问与答

1.5 问与答 Node.js入门经典 问:我能在服务器上使用JavaScript吗?JavaScript不是只能在浏览器上用吗? 答:JavaScript绝对可以用在服务器上,而且,它的许多特性使其精于此道.编写服务器端的JavaScript有许多好处,尤其在需要处理并发的时候.如果读者有使用诸如jQuery这样的框架编写JavaScript的经验,就会在Node.js中看到相似的模式. 问:创建Web应用程序,Node.js比PHP.Python..NET或Ruby好吗? 答:要评估哪个编程

《HTML5移动应用开发入门经典》—— 2.8 问与答

2.8 问与答 HTML5移动应用开发入门经典问:在哪里可以了解到更多的HTML5标签及属性? 答:本书稍后将介绍更多新标签及属性.当然你可以访问W3C官网www.w3.org/来了解最新的消息. 问:我准备使用HTML5标签编写Web页面了,但如果浏览器不支持HTML5,怎样确认我写的标签是正确的呢? 答:Web浏览器支持是大部分Web开发者遭遇的难题.HTML5并没有解决这个难题,但还是可以使用W3C官网上的HTML5一致性验证器,以及位于http://html5.validator.nu/

MySQL Memory 存储引擎浅析_Mysql

后来看到博客园在用NorthScale Memcached Server(官方站点:http://www.couchbase.com/products-and-services/memcached),貌似共享收费,又犹豫了.其实项目里的需求很简单,也想自己用.Net Cache来实现,但稳定性难以评估,开发维护成本又似乎太大,没办法,My SQL Memory Storage成了唯一选择,因为几乎不怎么需要编写代码. 先看官方手册,然后写了个简单的性能测试.因为官方最新的文档都是英文版的,所以译

深入理解proc文件系统

原文转自:http://www.cnblogs.com/cute/archive/2011/04/20/2022280.html 另外,可以参考这个http://www.centos.org/docs/5/html/5.1/Deployment_Guide/ch-proc.html        Linux系统上的/proc目录是一种文件系统,即proc文件系统.与其它常见的文件系统不同的是,/proc是一种伪文件系统(也即虚拟文件系统),存储的是当前内核运行状态的一系列特殊文件,用户可以通过这