******************************************* ***** 请阅读原文: blog.csdn.net/clark_xu ***** 欢迎关注微信公众号:clark_blog *******************************************
oracle性能调优:一种系统化方法
查看数据库等待事件:
select *from v$system_eventorderby total_waitsdesc;--db file sequential read,db file scattered read,
select *from v$sys_time_modelorderbyvaluedesc;--DB time,hard parse elapsed time,sql execute elapsed time
但是正确找到了数据库最耗费时间的活动,然后要分清什么是因,什么是果,比如果是——io请求数量。需要找到原因,而不是处理结果扩展存储器。
1.1 oracle调优历史:
经验准则
应该优化缓存区高速缓存命中率(buffer cache hit ratio),只在内存中找到sql语句请求的数据块的比率,常见的建议标准为提高buffer cache的大小。
闩锁(latch)命中率
“基于命中率规则”虽然反映了数据库内部的使用效率,但是和数据库应用的性能问题没有关系。
oracle 7.1 提供了等待事件的查询接口,可以查看不同等待事件花费的时间。因此基于等待事件的调优技术变为了主流。
1.2 超越表面分析法
基于等待事件分析法,一味关注响应时间,导致如下不良后果:
指标不治本;倾向于扩展硬件,而不是更划算的应用;只顾眼前,忽略长远及可扩展能力。
数据库的分析根据应用,数据库,操作系统的交互方式分为几个阶段:
(1)应用由sql形式向数据库发出请求,等待返回结果集及返回码;