【云和恩墨】insert into太慢?Roger 带你找真凶

原创 2016-09-20 李真旭 Oracle

insert into太慢?Roger 带你找真凶

李真旭(Roger)

ACOUG 核心专家,Oracle ACE,云和恩墨技术专家


编辑手记:昨天谈到索引并不是万能的,事实上很多无用的索引给数据库带来很大的维护负担,事实并不止于此,今天拣选Roger的文章,跟大家分享索引引发的其他性能问题。

问题描述

运营商客户的计费库反应其入库程序很慢,应用方通过监控程序发现主要慢在对于几个表的insert操作上。按照我们的通常理解,insert应该是极快的,为什么会很慢呢?而且反应之前挺好的。这有点让我百思不得其解。通过检查event也并没有发现什么奇怪的地方,于是我通过10046 跟踪了应用的入库程序,如下应用方反应比较慢的表的insert操作,确实非常慢,如下所示:

我们可以发现,insert了4579条数据,一共花了27.41秒;其中有24.02秒是处于等待的状态。而且等待事件为顺序读.很明显这通常是索引的读取操作,实际上检查10046 trace 裸文件,发现等待的对象确实是该表上的2个index。

同时我们从上面10046 trace可以看出,该SQL执行之所以很慢,主要是因为存在了大量的物理读,其中4579条数据的insert,物理读为4534;这说明什么问题呢? 这说明,每插入一条数据大概产生一个物理读,而且都是index block的读取。很明显,通过将该index cache到keep 池可以解决该问题。 实际上也确实如此,通过cache后,应用反馈程序快了很多。

那么对该问题,这里其实有几个疑问,为什么这里的SQL insert时物理读如此之高? oracle的keep pool对于缓存对象的清理机制是如何的?

下面我们通过一个简单的实验来进行说明。

首先我们创建2个测试表,并创建好相应的index,如下所示:

创建表和索引并插入数据

从前面的信息我们可以看出,object_name上的index其实聚簇因子比较高,说明其数据分布比较离散。

接着我们现在将index都cache 到keep 池中,如下:

这里需要注意的是,仅仅执行alter 命令是不够的,我们还需要手工将index block读取到keep池中,如下:

第一次读取并检查

第二次读取并检查

第三次读取并检查

我们可以大致看出,db keep pool 也是存在LRU的,而且对于block的清除机制是先进先出原则。那么为什么前面的问题中,insert会突然变慢呢?

下面我们来进行3次insert 测试。

第一次

使用10046事件跟踪

第二次

第三次

使用10046事件跟踪

从测试来看,随着表的数据越来越大,insert的效率会越来越低,也其实主要在于index的问题。我们可以发现,3次测试过程中,物理读越来越大,而且db file sequential read的等待时间分别从0.5秒,增加到0.56秒,最后增加到1.07秒。 为什么会出现这样的情况呢?

随着表数据的日益增加,导致表上的index也不断增大,同时index的离散度比较高,这样就导致每次insert时,oracle在进行index block读取时,可能在buffer cache中都无法命中相应的block;这样就会导致每次读取需要的index block时,可能都要进行物理读,这势必会导致性能问题的出现。同时默认的default buffer cache pool虽然也可以缓存index 块,但是也要同时缓存其他的数据块,这样很容易导致相关的index block被从buffer cache pool中移走。所以这也是前面为什么需要将index cache到keep 池的原因。

----the end


...............................................................................................................................

● 本文来自于微信公众号转载文章,若有侵权,请联系小麦苗及时删除,非常感谢原创作者的无私奉献

● 本文在itpub(http://blog.itpub.net/26736162)、博客园(http://www.cnblogs.com/lhrbest)和个人微信公众号(xiaomaimiaolhr)上有同步更新

● QQ群:230161599  微信群:私聊

● 原文地址:http://mp.weixin.qq.com/s?__biz=MjM5MDAxOTk2MQ==&mid=2650271710&idx=1&sn=77eb5c98304a0cca406def2e02347001&chksm=be4877c8893ffede9e0d1c727d9369dc600a7dfabdc984742bcf0efeaa669e91f8d1d1be21b0&scene=1&srcid=0920sbVTgv2XaoV3hE2ToaZ4#rd

● 小麦苗分享的其它资料:http://blog.itpub.net/26736162/viewspace-1624453/

● 小麦苗云盘地址:http://blog.itpub.net/26736162/viewspace-1624453/

● QQ群: 230161599   微信群:私聊

● 联系我请加QQ好友(642808185),注明添加缘由

●【版权所有,文章允许转载,但须以链接方式注明源地址,否则追究法律责任】

...............................................................................................................................

手机长按下图识别二维码或微信客户端扫描下边的二维码来关注小麦苗的微信公众号:xiaomaimiaolhr,免费学习最实用的数据库技术。

时间: 2024-10-24 23:25:30

【云和恩墨】insert into太慢?Roger 带你找真凶的相关文章

【云和恩墨大讲堂】SQL玩转AWR裸数据

编辑手记:Oracle线上嘉年华第四讲,SQL玩转AWR裸数据,教你真正利用AWR中的裸数据对系统性能进行分析并调优. 作者简介: 罗海雄 云和恩墨优化专家 ITPUB论坛数据库管理版版主,2012 ITPUB全国SQL大赛冠军得主,他还是资深的架构师和性能优化专家,对 SQL 优化和理解尤其深入:从开发到性能管理,他有着超过10年的企业级系统设计和优化经验.曾经服务于甲骨文公司,组织和主讲过多次<甲骨文技术开发人员日>和<Oracle圆桌会议>,并具备丰富的制造行业系统架构经验.

【云和恩墨】性能优化:Linux环境下合理配置大内存页(HugePage)

原创 2016-09-12 熊军  [云和恩墨]性能优化:Linux环境下合理配置大内存页(HugePage) 熊军(老熊) 云和恩墨西区总经理 Oracle ACED,ACOUG核心会员 PC Server发展到今天,在性能方面有着长足的进步.64位的CPU在数年前都已经进入到寻常的家用PC之中,更别说是更高端的PC Server:在Intel和AMD两大处理器巨头的努力下,x86 CPU在处理能力上不断提升:同时随着制造工艺的发展,在PC Server上能够安装的内存容量也越来越大,现在随处

【云和恩墨大讲堂】复合索引与绑定变量

编辑手记:2016 Oracle 技术嘉年华活动已经结束,为了让更多的技术爱好者有机会获取大会干货资源,我们将不断邀请演讲嘉宾展开"2016 Oracle 线上嘉年华". 讲师简介 邓秋爽(小鱼) 云和恩墨专家,有超过5年超大型数据库专业服务经验,擅长oracle 数据库优化.SQL优化和troubleshooting 今晚的恩墨大讲堂将有我为大家分享SQL审核中的两个典型案例,如下: 1复合索引前导列选择 2绑定变量分享--某业务SQL性能问题分析 在介绍这两个case之前先对目前我

【云和恩墨大讲堂】Oracle线上嘉年华第二讲

编辑手记:Oracle线上嘉年华,正在持续分享中.本次的主题是系统割接中的SQL解析问题和结合业务的SQL优化改写技巧. 1嘉宾介绍 小鱼(邓秋爽) 云和恩墨专家,有超过5年超大型数据库专业服务经验,擅长oracle 数据库优化.SQL优化和troubleshooting 新系统割接的library cache问题 这是我们在做系统割接的时候的一个案例,可能并不是很常见,这个案例是将Oracle 11g升级到12c的时候遇到的问题,出现了大量的library cache的问题.具体情况是: 新系

【云和恩墨大讲堂电子期刊】挑战者:Google成功的背后

致亲爱的读者: 在商业竞争中,进攻常常也是最好的防守.Google从小到大一直贯彻这个原则.Google在规模很小的时候,受到很多比自己大的公司的围攻,死守是没有出路的.因此它把自己放在一个挑战者的位置,不断挑战对手,也挑战自己.在商业竞争中,Google常常是两眼盯着前方向前冲,而不左顾右盼它的对手. 这段话摘自<浪潮之巅>,也是我认为对于Google成功的背后最好的阐释.Google公司从一开始就以挑战者的身份出现在人们的视野中,它不仅在技术和商业上挑战比自己更大更强的公司,而且在理念上挑

云和恩墨zData多租户整合,青海移动数据库云化起航

『截止到2017年,将会有超过80%的企业会采纳混合云模式部署 ,大幅推动组织变革和业务创新』,这是来自IDC 2016年对于云领域未来的预测. 2017来了,而且毋庸置疑,世界正以势不可挡的趋势朝着全球市场一体化.企业生存数字化.商业竞争国际化的方向发展,云和大数据已经成为这一切的核心发动机,如何有效应对云和大数据的浪潮,以更好的姿态拥抱变化,成为各行业迫切面临的问题. IT全面云化,青海移动一直走在前端 青海移动一向重视IT的发展和运营,在通信向云化转型的浪潮之上,快速定位自己在行业的未来发

云和恩墨盖国强:大数据核心问题是落地

&http://www.aliyun.com/zixun/aggregation/37954.html">nbsp;       [IT168 专稿]2013年4月18-20日,第四届中国数据库技术大会(DTCC 2013)将于北京福朋喜来登酒店拉开序幕.大会将秉承分享IT最佳应用实践的宗旨,围绕大数据应用.数据架构.数据管理(数据治理).传统数据库软件等技术领域展开深入探讨,并将邀请一批国内顶尖的技术专家来进行分享.本届大会将在保留数据库软件应用实践这一传统主题的基础上,向大数据

《Oracle性能优化与诊断案例精选》——1.5 云和恩墨,数据服务起征途

1.5 云和恩墨,数据服务起征途 时至今日,IT这个行业仍然是最为吸引毕业生的一个重要行业.记得多年前榕树下的一位朋友"落花如雨"说过一句话:喜欢这个行业,因为这个行业里汇聚了这个时代最聪明的人才与最快速增长的财富. 就因为这两点,众多的年轻人前仆后继的开始涌入这个圈子.那么然后,出路又在何方呢?一直以来大家都认为,程序员或者IT领域是年轻人的天下,因为这里有变换迅速的技术和产品,而机遇和压力一直是呈正比增加的. 我也开始探索作为技术人的出路,云和恩墨就是这样一个开始,如图1-8所示.

云和恩墨助力东风日产Exadata一体机核心系统

东风日产乘用车公司成立于2003年6月16日,是东风汽车有限公司旗下重要的乘用车板块,从事乘用车研发.采购.制造.销售.服务业务,是国内为数不多的具备全价值链的汽车生产企业. 自成立开始到 2014 年 8 月,东风日产累计整车产销量已突破 550 万辆,刷新行业最快纪录.在 2015 年,东风日产四大基地整车总产能有望从现有的 100 万辆提升至 150 万辆. 东风日产技术中心,是日产汽车公司在全球第四个具有同等研发平台的技术中心,是中国华南地区最大的乘用车技术中心,通过与世界同步的研发,不