使用shell定制awr脚本
大家在做性能问题诊断的时候,awr是不可或缺的工具,使用?/rdbms/admin/awrrpt.sql可能大家使用的多了,可能有时候感觉输入参数还是有些太繁琐了。一边复制,一边得到一个快照列表查看,其实还是不太方便。比如我想查看某一天的8点到9点的快照,生成一个awr报告,那么可能得算一下大概需要多少天的快照,然后从一个冗长的快...
通过shell定制ash脚本
ash是在10g以来一个很有用的特性,能够作为awr的补充,对于排查一些历史的问题能够提供更加详细和针对性的数据。当然个人在使用ash的时候感觉最慢的地方就是在于输入时间戳了,每次输入侧时候都得一边看着样例,一边按照格式,一份ash的报告,至少20%以上的时间耗在这个时间戳上了。有时候想查看几个时间点的数据,如果精...
生产环境sql语句调优实战第九篇
生产环境中有一些sql语句是不定时炸弹,不声不响的运行着,可能相关的表很大,运行时间达数小时。上周在生产环境中发现一条sql语句,运行时间几乎是按照天来计算的。看到这种sql语句,就希望能够马上能够找到立竿见影的效果,不过欲速则不达,需要做不少工作。一定要反复验证可行。sql语句的运行情况如下:SQL Execution ...
关于修改分区表的问题总结
在之前的章节中讨论了关于修改表分区的一些准备工作和操作细则,这个问题的来由有必要说一下。通过分区键值发现性能问题 http://blog.itpub.net/23718752/viewspace-1263068/当时是在做数据迁移的时候发现了一些表,导入数据比较慢,尽管做了分区的并行切分,速度还是很慢,最后查看数据的分布时,发现90%左右的数...
关于查询转换的一些简单分析(一)
在sql解析器中,在生成执行计划的时候,会在多个执行计划中选择最优的计划,在这个过程中,查询转换就是一个很重要的过程。虽然最终的执行结果没有变化,但是从优化器的角度来看,查询转换的结果会更好。大体来说查询转换有以下几种类型。视图合并子查询解嵌套谓词推进物化视图查询重写比如select *from emp whe...
memory_target设置不当导致数据库无法启动的问题
今天在做一个问题排查的时候碰到了另外一个有些“奇怪的”问题。我们在测试库中已经禁用了SGA自动存储管理,结果在spfile文件里丢掉了shared_pool_size的配置测试环境的参数类似下面的样子sga_max_size big integer 1200Msga_targ...
生产环境sql语句调优实战第十篇
陆陆续续写了九篇关于生产环境sql语句的调优案例,发现了不少问题,可能有些问题回头来看是比较低级的错误,稍加改动就能够运行在秒级,有些可能是在秒级到毫秒级的小步提升等等,不管调优的改进多大,从dba的角度来看,好多问题都是基于资源来调优的,比如添加索引,降低IO,降低CPU消耗,提高CPU利用率等等。如果有时候从...
由一条日志警告所做的调优分析
这个案例发生有段时间了,但是今天无意中看到当时的邮件,感觉还是收益匪浅,看来还是细节决定成败啊。从一些日志或trace 文件中的警告信息中我们可以发掘出潜在的问题。当时系统中的用户数很小,所以每天都能抽时间看看日志记录,看有没有明显的问题。结果在grep的时候发现trace文件中有一些警告记录。当时的库是10gR2的库...
使用strace分析exp的奇怪问题
exp算是一个经典的数据导出工具了。对于小数量的表来说,个人还是比较钟爱exp。毕竟expdp还需要配置directory而且还在服务端。exp在数据量小的情况下速度还是很理想的。关于exp导出的这个问题,已经拖了很久了,自己也排查了各种方法。通过查看wait event,查看exp的debug日志,都没有得出一些很有说服力的内容,今天下定...
awr性能问题排查第一篇
对于awr,里面涵盖的内容比较杂,有时候看报告的时候总是不知道该怎么下手。时间长了,可能会有一些阅读习惯或者心得。今天在看大师chris lawson的一篇博文对于awr的一些心得(http://www.oraclemagician.com/white_papers/10awr.pdf ),还是蛮有收获,赶紧按照这个方子来细细品味一番。首先是查看等待事件,这个也是...
联系生活来简化sql语句
目前生产环境中有一条sql语句的CPU消耗很高。执行时间比较长。从awr中抓到的sql语句如下:SELECT run_request.run_mode, cycle_groups.flow_id, cycle_groups.request_id, cycle_groups.dynamic_attributes, &nb...
胖客户端程序总结
这周基本功能都花在了胖客户端程序上,自己考虑做一个应用,个人比较倾向于胖客户端程序,主要考虑了一下几种。spring richclient开源的,自己之前的工作做了大量的应用,之前的公司也花了很多的精力和资源在这上面做了很多的客户化工作和优化功能,richclient已经很多年都不更新了,但是感觉还是亲切一些,所以自己也首...
走索引扫描的慢查询
今天查看awr报告的时候,发现一条sql语句异常。Elapsed Time (s)Executions Elapsed Time per Exec (s) %Total%CPU%IOSQL Id...
简单分析shared pool(一)
oracle中的shared pool很重要,但是感觉知之甚少。今天想在原来的认识上能够有一点更深入的了解。简单做了一个总结。首先是转储一下shared pool共享内存的内容。SQL> alter session set events 'immediate trace name heapdump level 2';Session altered.这个步骤会得到一个trace文件。简单的换算一下,就得到了trac...
关于降低高水位线的尝试
在前一段时间,生产环境中有几个很大的分区表,由于存在太多的碎片,导致表里的数据就几十条,但是查询的时候特别慢。很明显是高水位线导致的问题。一般来说这类问题,使用备份->truncate->insert的方式比较保守,不适用于在线操作。而在10g开始的一个新特性shrink算是一个比较理想的方案,按照新特性的预期,速度也是很快...
简单分析shared pool(二)
对于shared pool的学习,发现越尝试去了解,发现自己对它越不了解。里面的东西很杂。自己想用几个问题来作为引子来说明更加会有条理一些。shared pool的大小设置对于shared pool的大小设置,从早期版本到现在一直都带有争论。从操作上来说,需要设置shared_pool_size就可以了,如果启用了sga_target或者11g里的memory...
和Null有关的函数
关于null相关的函数在日常的工作中还有比较实用的,可能会碰到各种和Null校验相关的情况,大体有以下几种。case whendecodenvlnvl2lnnvlnullifcoalsce-->case whencase when算是这个比较通用的方法,可以支持各种复杂的逻辑判断,对于Null的校验也不在话下,可能相对来说程序会略显臃肿。在性能方面还没有...
通过shell脚本监控sql执行频率
在生产环境中,可能会存在各种潜在的sql问题,比如由于硬件资源导致,如果影响到了IO,CPU,就会导致一些本来运行很快的sql语句变慢或者系统响应严重减缓。比如由于数据库的一些设置导致执行计划的问题,sql_profile导致的执行计划稳定带来的性能不稳定,表中统计信息的变更导致的执行计划的变化等等。有时候等到问题发生...
外部表简单总结
对于外部表的使用而言,可能是既陌生又熟悉的感觉,说陌生可能自己真正的使用机会要少一些,而熟悉可能是大家比较常用的通过外部表来查看数据库日志,其实外部表还有更丰富的内容。当然了外部表的使用都是基于目录来实现的。外部表调用的引擎有两个,一个oracle_datapump引擎,一个是oracle_loader引擎,在使用中和datapump...
关于正则表达式第四篇
正则表达式,林林总总说了几篇,还是有不少的内容需要补充。-->星号字符出现0次或者多次$ echo "ik"|sed -n '/e*/p'ik$ echo "ieek"|sed -n '/e*/p'ieek$ echo "This is a color TV"|sed -n '/colou*r/p' --colour中的u可以出现0次或者多次。出现0次的时候color就符合条件This is a color TV$ echo "This ...