完美的执行计划导致的性能问题
今天现场的开发同事反馈有一个job处理数据的速度很慢,从半夜2点开始运行,结果到了早上8点还没有运行完,最后无奈kill掉了进程。等我刚到公司,他们想让我查查倒底是什么原因导致的执行速度很慢。首先和他们简单沟通了下,问最近有什么新的变更吗,他们说没有,平时跑这个job的用户量不是很大,今天早晨调用job的时候用户...
Oracle 11gR2 Database UNDO表空间使用率居高不下
客户的数据库是Oracle Database 11.2.0.3.0 for AIX 6.1 64bit的单机数据库。客户查询DBA_FREE_SPACE发现UNDO表空间的使用率高达98%以上。客户的UNDO表空间已经手动扩展到了25GB,且一直在增加,为了UNDO表空间能及时的被释放,UNDO表空间对应的所有数据文件自动扩展都被关闭。查询DBA_UNDO_EXTENTS发现在UN...
谓词条件的数据类型随意书写对SQL性能影响巨大
最近在优化某系统中发现许多SQL语句在书写谓词条件(wheret条件)时完全不根据表结构定义的字段数据类型来,而是随意书写谓词条件,这样造成原来能走正确索引的结果不能使用该索引,其结果就是查询语句的性能很差,这里将我所遇到的两种情况介绍一下.第一种情况是谓词条件进行了数据类型的转换转换使得CBO无法使用索引:...
创建合理的索引避免order by操作提升SQL性能的案例一
某医保系统的查询一年内一个中心所有医疗费支出的汇总情况执行3000多秒才能出结果,下面TOP SQL中执行时间最长的SQL语句它的功能是查询一年内一个中心所有医疗费支出的汇总情况,执行时间3286秒,则且这条SQL就是我们要找的SQL语句。Elapsed Time (s) CPU Time (s)ExecutionsElap per Exec (s)% Total DB Time ...
探究AWR 第二篇
在探究awr第一篇中介绍了awr的一些基本操作 http://blog.itpub.net/23718752/viewspace-1123134/在这一篇中,我们来分析几个awr报告来探究一下awr的一些信息,其实在报告中有很多的信息是互相印证的。对于我们深入理解awr报告还是很哟帮助的。首先来看看CPU负载的分析,这个也是理解awr的一个切入点。CPU资源的考虑...
ORACLE锁等待的处理方法
前言:锁等待的管理是数据库管理员在日常工作中会碰到较多的一个问题,一般来说大型的ERP锁等待的处理会相对较少,小型的应用系统锁等待会相对比较多。 常规的锁等待的处理方法如下: 1) 先查找持有锁的对象: 脚本:select a.sid, b.spid from (select s.sid, s.paddr from v$session s,v$lock l WHERE l.sid = s.sid ...
一个新上线数据库的调优记录
背景说明:一个供应链协同系统上线后的几天后,陆陆续续有用户反馈系统有些慢,这个时候项目的老大第一反映就是让DBA看下系统的瓶颈。一般情况系统上线前期都会有压力测试,但是压力测试并不能模拟出复杂的业务场景,经过了压力测试也并不代表在实际的运行中不会出现问题。顺便跑题一下:系统上线前期如果系统有问题,那...
关于索引扫描的极速调优实战(第二篇)
在上一篇http://blog.itpub.net/23718752/viewspace-1364914/ 中我们大体介绍了下问题的情况,已经初步根据awr能够抓取到存在问题的sql语句。这条sql语句执行很频繁,目前平均执行时间在0.5秒。开发部门希望我们能不能做点优化,他们也在同时想办法从业务上来优化这个问题。从0.5秒的情况下,能够再提高很多,是得费很大力...
关于索引扫描的极速调优实战(第一篇)
一般在生产环境中,如果某个查询中涉及一个大表,走索引扫描是显然是最值得推荐的方式,但是索引扫描有unique index scan, range scan,skip scan, full scan, fast full scan,这些索引扫描看起来好像很繁杂,但是如果掌握得当,却能够在索引扫描的基础上极速提升性能。关于索引扫描的方式,可以参考。http://blog.itpub.net...