-
Recent Posts
Recent Comments
- yangtingkun on 非空字段空值对查询的影响
- Eric Zong on 非空字段空值对查询的影响
- Kamus on Oracle Ace Director
- 设置全局死锁优先级 | yangtingkun on RAC全局死锁检测时间
- ORA-600(krbounotread_noctx)错误 | yangtingkun on ORA-600(krboReadBitmap_badbitmap)错误
Archives
- December 2020
- February 2019
- December 2018
- November 2018
- October 2018
- July 2018
- June 2018
- May 2018
- July 2016
- July 2013
- June 2013
- November 2012
- October 2012
- September 2012
- August 2012
- July 2012
- June 2012
- May 2012
- April 2012
- March 2012
- February 2012
- January 2012
- December 2011
- November 2011
- October 2011
- September 2011
- August 2011
Categories
Meta
Category Archives: NEWS
Oracle In Memory最佳实践
在这次数据技术嘉年华大会上,我和大家分享的主题是Oracle的In Memory新特性。In Memory特性是Oracle12c推出的三个重大新特性之一,通过引入内存中独立的列存区域,可以大幅度提升查询性能。 这次的主题主要从四个方面展开,首先介绍In Memory的基础架构,Oracle采用什么的架构来支持In Memory内存区域的存储和查询访问。 在正式开始之前,首先把一些易混的概念梳理清楚,Oracle中有太多的内存缓存组件,简单介绍一下各自的功能和差异。DB Cache是数据块的缓存,日常的增删改查都需要先将数据保存到这个区域,而DB Cache又跟据使用差异的不同分为Default、Keep和Recycle三个区域,Cache是表的属性,可以控制读取表数据的时候放到LRU链表的位置;Result Cache是11g引入的功能,可以直接将SELECT的查询结果或FUNCTION的返回结果缓存下来,再次访问的时候,如果依赖的对象没有发生过修改,可以不再进行查询或调用,而是直接返回Result Cache中缓存的结果;Memoptimize功能是在18和19中分别针对非常频繁的读表和写表进行的优化,通过设置独立的内存区域来加速对应的访问;Timesten是Oracle的独立的内存数据库,用来针对超高速的OLTP的请求,其独立部署支撑的TPS最高记录已经突破1亿;最后登场的就是今天要介绍的重点Oracle Database InMemory选件。 Oracle的In Memory功能并不是原有功能的替换,而是新功能的叠加,也就是说在保留DB Cache读写全部的功能的基础上增加了额外的列存区域。Oracle针对In Memory的访问同样提供了事务性,也就是针对列存区域的访问,ACID的功能同样是提供的。而且Oracle针对In Memory的使用已经彻底做到了CBO自动判断,证明这个功能已经相对成熟。 简单说明In Memory是如何提供事务一致性访问的,当DML修改DB Cache的数据块时,In Memory区域并不会同步修改,但是Oracle通过在对应行上打标记的方式通知In Memory,这里存在修改的数据,同时将DML的修改同步到In Memory的独立日志区。在查询访问时,访问In Memory区域之后,还需要访问日志区,将其中的DML修改Merge到列存读取的结果上,从而提供一致性的访问。 介绍完了In Memory的架构,下面来看看In Memory的性能优势和功能: In Memory对于查询访问的提升主要来自三个方面,除了内存访问带来的数据扫描的性能提升外,还可以配合星形查询转换以及布隆过滤等大幅度提升表连接的性能,此外In Memory对于聚集操作也有明显的性能提升。 In Memory除了可以加速表中列的访问速度,对于虚拟列或表达式计算也可以进行加速,使用内存表达式加速有用户定义虚拟列或Oracle自动检测两种方式。 由于系统中内存的容量总是有限的,In Memory除了提供压缩算法来降低内存的使用外,还可以配合12c的新特性Heatmap和ILM来自动完成数据段在In Memory内存中的生命周期管理。 由于In Memory的数据来源与存储在数据文件中的行格式,因此重启过程中会需要读取大量的数据到内存区。Oracle提供了加速这个过程的功能,通过设置独立的In Memory快速启动表空间,使得Oracle把列存的数据直接保存在表空间中的SECURE FILE … Continue reading
Posted in NEWS
Leave a comment
20180517 Oracle Code Singapore
接到Oracle的邀请参加了2018年5月17日在新加坡举办的Oracle Code会议。我的演讲主题是How to write an efficient SQL。 开发相关的技术变化非常之快,甚至让人有应接不暇的感觉,不过开发技术中也有少量技术一直历久弥新,SQL就是之一,自诞生以来40多年一直发挥着重要的作用。 调查显示,SQL是目前第二大编程语言,有50%的开发者都在使用SQL。虽然使用非常广泛,但是SQL的质量水平却并不令人满意。 根据经验80%的数据库问题是由于SQL引起的,而80%的SQL问题来自于20%的SQL语句,在一些高并发高负载的系统中,由于一条SQL的性能问题导致数据库整体出现异常的情况屡见不鲜,这也是我本次选择这个主题的原因,希望帮助更多的开发人员可以书写出高效的SQL语句。 本次主题包括四方面的内容:合理的使用新特性;数据集整体处理;设计SQL执行计划;严格过滤数据。 合理的使用新特性,可以避免重复访问数据,合并简化执行操作过程,缓存中执行间结果,减少自关联,高效灵活的处理一些复杂问题。因此,充分理解新特性的功能以及其适用场景,是书写高效SQL语句的基础。 SQL本身是描述性语言,大部分情况下使用SQL的时候并不需要特别关注每行数据如何去处理,将数据整理处理作为思路,会发现SQL的性能会更好,而且很多时候SQL的写法也会更加简洁。 好的性能是设计出来的,因此如果想写出高效的SQL语句,要从一开始就考虑好这个SQL的执行计划,驱动表是谁,采用何种JOIN方式连接到被驱动表。设计思路是一方面,另一方面是保证执行计划符合设计思路,这时候就需要用到提示的功能。熟悉提示的功能,可以更好的控制SQL的执行路径,绕过bug或性能问题,强制SQL按照设计思路去执行。 过滤不必要的数据对于提升SQL的性能非常重要,对于一个计算10000以内质数的SQL,未经优化前需要1分12秒的执行时间,消耗17万逻辑读。 … Continue reading
20130725 上海OOW第四日
今天终于有空听了一下技术主题。 展台的奖品已经基本上发完了,而且今天是最后一天,人相对少一些,因此上午抽出一些时间去听了一个技术的专题。 这个主题主要介绍了12c性能方面的特性。开篇Oracle先介绍了在各个场景下TPCC的记录都是Oracle保持的,并展示了那张引来无数关注的TPMC测试结果:SUN平台性能超过HP平台的7倍。 主题中的另一个亮点是介绍了Oracle自己用来承载邮件、日历、联系人、聊天、文档以及网络会议的Oracle集群,由9台X2-2组成,一共2376核,2PB数据量,7T内层和48T闪存。这个应该是实际上最大的Oracle集群部署在奥斯汀,通过DG技术将备用环境部署在犹他数据中心。这个环境中充分利用了Oracle各种软件功能:RAC、Streams、Active Data Guard、Secure Backup、RMAN、Flashback Database、ASM、Partition等。数据库利用SecureFiles的压缩功能节省了2倍的空间。 最后终于介绍了12c中一些与性能有关的特性:内存中并行执行、自适应执行计划、通过WITH将PL/SQL内嵌到SQL中、内存中的全局临时表、内存中的LOB查询和更新、并行加载和移动LOB、基于内存队列的快速审计、自动数据优化、高级压缩等。
20130724 上海OOW第三日
又在OOW的展览大厅打了一回酱油,和Jackie Han、Kamus一起介绍ACE Program。 今天上午本打算一早去听技术的专题,没想到有客户数据库出现了异常,远端诊断和分析用了不少时间,到了OOW现场时,KeyNotes已经结束了。又赶上公司的展台事情比较多,因此一直在展台帮忙。 OOW的午饭从1点开始,而我们的专题从1:20开始,怕吃饭的人多来不及,于是打算等专题结束后再去,没有想到后来提问的人还很多,专题一直持续到了2点以后。跑到楼上发现午饭也结束了。 公司的展台仍然是络绎不绝,连Oracle数据库研发的老大Andy都来到了我们的展台,可惜当时正在给一个咨询问题的朋友讲解12c的架构,完全没有注意到。知道最后看到Eygle的微博才发现,也算是后知后觉了。我们的12c架构图非常受欢迎,从北京带来的近900张图,在今天下午就已经发送一空了。看来明天上午已经没啥礼品可送了。 晚上Oracle的答谢晚宴,感觉和旧金山的金银岛音乐节异曲同工,都是我很不感冒的。转了一圈就闪人了。
20130723 上海OOW第二日
今天在OOW的ACOUG专场分享了Think Different的主题。 今天一天在会场非常的充实。到了会场后先去听了今天的KeyNotes,其中Steve Miranda的云计算的主题以及Andy Mendelsohn的12c数据库对云计算的支持,都是本次大会的重点话题。Oracle 12c中的C指的就是CLOUD,而12c最大的亮点PLUGABLE DB就是Oracle在DB层对云架构的支持。 如果说去年OOW大会只是给出了12c PLUGABLE DATABASE的概念,那么今年OOW上Oracle已经想好要如何用PDB来支持云服务了,甚至我怀疑Oracle来云服务的收费细则都已经定义好了,青铜、白银和黄金三档,每档对应的架构和服务都已经定义清楚,而在各个档之间进行升级也同样进行说明。看来Oracle已经准备利用12c来打造数据库服务云了。只不过以Oracle以往收费的标准,不知道一些不想自己搭建环境、维护数据库的中小企业,能否接受正版云服务的价格。 中午OOW的午饭一如既往的不给力,这种面包、三明治的配置更适合老外,估计大部分国内参会者,这三天午饭会比较郁闷。 下午全程参加了展览大厅的ACOUG活动,首先是Eygle两个优化的主题,然后是Kamus三个关于升级的主题,最后是我的两个主题,一个是ODA,另一个是Think Different。可惜的是,每个主题的时间只有二十分钟,而我们任何一个主题正常时间都应该超过1小时。因此,最终Eygle只讲了一个主题就超过了两个主题的时间,而Kamus最后紧赶慢赶终于完成了三个主题,但是时间方面超了不少。根据他们两个的前车之鉴,我直接选择了现场绝大部分人都想听的Think Different,而舍弃了ODA的主题。其实舍弃ODA也比较可惜,在OOW的现场展示了ODA的最新版本,而我在中午的时候还把最新版的ODA的内容添加到了PPT里面。 剩下一些零碎的时间基本上都在公司的展台帮忙,除了解答问题,当背景合影外,还碰到了不少新、老朋友。
20130722 上海OOW开幕
期待已久的ORACLE OPEN WORLD终于开幕了。 有了以往OOW的经验,没有一大早就跑去排队注册,而是到了下午才去签到注册地方,几分钟搞定了注册的过程。 今天一早听说马克赫德的飞机由于机械故障,导致中途返航,导致他将无法现场出席本次上海OOW大会,他的演讲将改为远程的方式。我在去年10月不但现场听过他的演讲,而且现场看过Larry的演讲,因此倒也没有什么遗憾,而对于大部分技术人员而言,在现场的时候也会盯着大屏幕,是不是现场真人演讲也没有本质的区别。估计影响最大的应该是媒体的朋友,缺少现场采访对象,可能会使本次的OOW之行大打折扣。 下午并没有去听KeyNotes,而是跑到了公司展台帮忙。公司的几个同事基本已经把展品布置好了,我们为大家准备了一些礼物,尤其是一张Oracle 12c的架构图,经过我们多次设计修改,是公司很多人集体智慧的结果,希望可以对技术爱好者有所帮助。
20130721 OOW媒体发布会
今天抵达了上海,开始开启OOW模式。 这次是第三次参加OOW,和以往不同,本次公司作为参展商参加了OOW,在一层的展览大厅有专门的展台,而且本次公司的6个ACE都到达现场,准备一起参加这次Oracle的盛会。 今天下午原本想去会场先进行注册,但是听说会场还没有开门。本来今天应该没有相关的活动,结果Eygle作为微博特使有一个媒体发布会,被Eygle拉了过去,顺便把Kamus也一起叫上。 这个媒体发布会主要介绍了本次OOW的重点方向,包括软硬件集成的系统、云计算、客户体验和JAVA。另外,本次会议的规模在国内也是空前的,参会人员达到了18000人,而国内其他IT上千人的会议相比,绝大算得上是巨无霸了。
20130712 LSI渠道启动峰会
参加了LSI渠道启动峰会,还碰到了沃趣科技的CEO。 原则上讲云和恩墨不算是LSI的渠道商,不过之前与LSI合作对Nytro WarpDrive卡和Nytro MegaRAID对于Oracle数据库性能的提升。因此LSI把我们作为合作伙伴也邀请到了今天的渠道峰会的会场。 最近恰好也在一个客户处进行LSI的POC,客户的数据库和SQL都进行了优化,优化后数据库的主要压力落在IO上,因此考虑通过缓存的方式来进行优化。如果缓存的测试效果非常明显,到时候会将对比效果公布出来。 而沃趣科技之前一直和FusionIO合作,本次来参加LSI的会议,应该也是作为技术合作伙伴。和grassbell还是第一次见面,虽然早在04年就已经在ITPUB上相识,不过随着他到了阿里,此后就一直没有机会见面,没想到这次见面的机会还是LSI提供给我们的。
Posted in NEWS
Leave a comment
20130626 Oracle12c终于发布
翘盼已久的Oracle 12c今天终于发布了。 Oracle的12c将要发布的消息已经传出来将近1年时间了,就在大家认为是不是要等到OOW的时候,Oracle 12.1.0终于发布了。 第一批发布了三个平台,不用猜也知道肯定是Linux和Solaris,包括Linux X86-64、Solaris Sparc 64和Solaris X86-64。 同时在线文档也发布出来,可以通过http://www.oracle.com/pls/db121/homepage进行在线访问。估计最近一段时间,大部分新特性的文章会不断的涌现出来。
BLOG访问量突破千万
从BLOG访问过百万到突破千万,用了超过4年半的时间。 老版的BLOG本以为坚持不到千万的访问量,一方面是新的个人网页会产生一些分流,另一方面ITPUB可能会关闭老版的BLOG,不过没想到这个目标最终还是实现了。 由于大量的文章都保存在老版BLOG中,且早期的绝大部分文章中的超链接也指向了老版的文章,因此老版的更新会一直保持下去,直到ITPUB将整个老版BLOG停掉为止。 而ITPUB的新版BLOG今后不会再进行更新,因为同时维护三份BLOG实在没有什么意义,且浪费太多的时间。 以前确定的两个目标坚持5年的BLOG和访问量达到千万,现在都已经实现,目前看没有什么特别的计划了,以后就可以顺其自然了。
Posted in NEWS
Leave a comment