深入解析和定制Oracle优化工具
首先不会Oracle的我觉得也可以听懂。哈哈,因为我不会专门讲oracle里的太细的东西。这部分的内容比较通用,可以借鉴思路。我会在我的平台里面糅合这些思想,总之有货有料之后,加上时间和精力,就好比阳光空气水。ppt有一部分是我在InfoQ的一次大会上做的一个简单的分享,今天在原来的ppt基础上重新做了一番...
一个复杂的数据需求的创新优化(r12笔记第96天))
今天处理了一个蛮有意思的案例,正如我给开发同学所说的那样,方案有很多,但是我们需要明确需求之后,找到一个最合适的需求。 业务同学反馈,数据库中有一个表数据量很大,因为要做一期活动,需要近期的数据,以前的旧数据可以考虑清理。清理多少旧数据呢,差不多是99%的量,数据量有多大...
swingbench压测Oracle小记(二)(r12笔记第20天)
今天抽时间在整理一个关于MySQL和Oracle共同面临的问题,但是它们有着不同的解决方案,就是经典的partial write问题,我也看到网上有很多DBA在纠结,在争论,相比而言,Oracle这边更沉默一些。我认真看了他们的讨论,但是到目前为止没有看到一个把两方面都照顾到的解读,而且这个问题可以继续扩展开来,从...
swingbench压测Oracle小记(r12笔记第19天)
之前也分享过一篇关于swingbench测试Oracle的文章,也算是一个起步了。 新业务要上线,不跑个压力测试还真说不过去,当然我比较喜欢swingbench的一点就是它可以模拟一些OLTP的场景,比如订单类业务,新建客户,订购,下单等这样一个流程的操作算是一个模拟真实的事务。 &nbs...
相差数十倍的SQL性能分析(r11笔记第98天)
今天处理开发同学提交的一个数据查询需求,看起来是一个很常规的SQL,但是有一点不同的是,他们提供了两份文件,一份是一个id列表,大概有3000多个id值,另外一个份是个SQL文件。 之前也处理过几十万,上百万id值的情况,使得我原来开发中对于变动的敏感性依旧存在,所以我采用了另外一种灵...
假期前的数据库检查之主动优化
快要过年了,很多工作都会放下来,很多计划都会搁置下来,节前的检查还是必要的,尤其是那些看似不起眼的问题尤其需要注意。今天就处理了一起,也算是假期前的性能优化临门一脚。一、一个不经意的问题?做例行检查的时候,我基本会看看大体的DB time情况,是否有较大的抖动,归档频率是否频繁,近...
物化视图实现的特殊数据复制(r11笔记第42天)
今天开发同事碰到一个有些复杂的数据复制需求,想让我帮忙看看能否实现,当然猛一听需求是不可能实现的。不过还是耐着性子和他们讨论了一下,不过我想了下,似乎还是有改进的余地,也算是拨云见雾吧。 目前有一个表做了拆分,即分库分表。在统计业务中还是需要把数据整合起来查询。大体就是下面的架构方...
一个SQL性能问题的优化探索(二)(r11笔记第38天)
继续前几天的一个案例一个SQL性能问题的优化探索(一)(r11笔记第33天)如下的SQL语句存在索引字段CARD_NO,但是执行的时候却走了全表扫描,因为这是一个核心表,数据量很大,导致数据库负载很高。SQL_FULLTEXT------------------------------------------------------------------------------------------------...
复杂SQL性能优化的剖析(二)(r11笔记第37天)
昨天的一篇文章复杂SQL性能优化的剖析(一)(r11笔记第36天) 分析了一个SQL语句导致的性能问题,问题也算暂时告一段落,因为这个语句的执行频率是10分钟左右,所以优化后(大概是2秒左右,需要下周再次确认)的提升很大。 对于优化是一个持续的改进,我们碰到的问题,最终的原因可能五...
复杂SQL性能优化的剖析(一)(r11笔记第36天)
今天本来是处理一个简单的故障,但是发现是一环套一环,花了我快一天的时间。开始是早上收到一条报警:报警内容: CPUutilization is too high------------------------------------报警级别: PROBLEM------------------------------------监控项目: CPU idle time:59.94 % -------------------------------...
一个SQL性能问题的优化探索
今天
insert导致的性能问题大排查(r11笔记第26天)
今天开发的同学小窗口消息给我,向我咨询一个ORA错误的问题。错误代码是ORA-30036,使用oerr ora 30036查看,由于是undo空间无法扩展导致。这是一个统计业务的数据库,而且平时的负载其实并不高,确实有一些奇怪。首先排除了大事务导致的原因,查看数据库日志,和开发同学沟通,没有发现相关的错误信息。所以...
百倍性能的PL/SQL优化案例(r11笔记第13天)
我相信你是被百倍性能的字样吸引了,不过我所想侧重的是优化的思路,这个比优化技巧更重要,而结果嘛,其实我不希望说成是百倍提升,“”自黑“”一下。 有一个真实想法和大家讨论一下,就是一个SQL语句如果原本运行20秒,优化到了1秒,性能提升该说是20倍还是提高了95%。当然还见过一种说法...
闪回区报警引发的性能问题分析(r11笔记第11天)
自从有了Zabbix+Orabbix,很多监控都有了一种可控的方式,当然对于报警处理来说,报警是表象,很可能通过表象暴露出来的是一些更深层次的问题。这不又来一个,不看不知道,一看让自己着实吓了一跳。首先是一个报警信息,可以看到是闪回区超过了报警的阈值,为了尽可能提前发现问题,我把阈值设置为了70%,和Oracle默认...
每秒执行6000的简单SQL优化(二)
继续前几天的一次性能调优,这次调优难度不小,而且空间很小,看起来简直就是绝处逢生的感觉。下面的两条SQL语句执行频率极高,每秒达到6000次,希望能够优化。select companyname from license select supdepid from hrmdepartment where id=''前几天分析了一下,也尝试了很多种方法,但是始终无法启用索引,最后...
每秒执行6000的简单SQL优化(一)
最近看到一个系统的负载比较高,引起了我的注意,查看AWR报告发现,竟然是因为两条很简单的SQL语句导致。 语句有多简单呢,就是下面的两个SQL语句。select companyname from licenseselect supdepid from hrmdepartment where id='' 突...
通过IP定位区域的SQL优化思路
昨天中午吃饭的时候,突然手机收到一条报警信息,提示数据库的负载突然提高了。对于一个高配,稳定,核心的系统来说,出现这么一个报警会立刻引起关注。连接到环境之后,发现在问题发生时间段快照中资源消耗较大的SQL情况如下: SNAP_ID SQL_ID EXECUTIONS_DELTA ...
一条SQL语句的执行计划变化探究(r10笔记第9天)
继续上次分析的一个问题,一个简单的SQL语句执行计划有些奇怪,明明可以走唯一性索引但是却走了另外一个索引。当然了,最后逐步定位,发现是在直方图的地方有一些差别。取消直方图之后,执行计划立刻恢复了正常。当然问题来了,这个是为什么呢,收集统计信息中的auto选项是什么含义呢。为什么两个数据类型一样的(varchar2(...
一条SQL语句的执行计划变化探究
最近有个同事碰到一个问题,想让我给点思路。我大体了解了一下,是一个系统目前在做压力测试,但是经业务反馈发现某个环节的处理时间有些长,排查了一圈,最后这件事情就落在了DB这边,希望DB能够给点意见,是否存在一些性能瓶颈。 我们从开发同学那里得到的一个基本的SQL语句,根据关键字从v$sql中做了...
调需式优化的简单实践
作为DBA总是会有现场的救火工作,而如果尽可能早一些介入需求,设计,开发阶段,可能就会杜绝很多潜在的性能问题。很多问题都是如此,都是逐步积累,最终在某一个阶段会集中爆发出来。今天看老盖的感慨,前十年跟全表扫描斗争,后十年跟隐式转换斗争,几代DBA大约都会面临这样的事情,想想真是蛮有...