ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 神州车管家Oracle buffer busy waits和db file sequential read故障处理

神州车管家Oracle buffer busy waits和db file sequential read故障处理

原创 Linux操作系统 作者:xiaoyao820820 时间:2009-08-08 12:49:07 0 删除 编辑

2009-08-05号,刚要下班的时候,我所在的项目组工作人员报告车管家系统现在运行非常慢,我马上意识到运行慢肯定是数据库出现了问题

 马上进行了数据库检查:

(1)select * from v$session_wait;

发现大量的buffer busy waits和db file sequential read事件

(2)查询导致buffer busy waits和db file sequential read事件的sql语句

select s.sid,s.serial#,spid,sql_text,s.username,s.program,process 
from v$sqlarea q,v$session s,v$process p where q.address=s.sql_address
    and q.hash_value=s.sql_hash_value and s.paddr=p.addr and s.sid in (?);

果然抓取全是相同的sql语句

(3)询问开发人员,找到该查询语句

(4)疲敝该sql语句

(5)分析sql语句,该sql语句已经是最优化,导致该次故障的主要原因是首页告警查询是每隔6分钟执行一次(告警信息表500万数据,并在不断增加),当用户达到一定数量以后,导致buffer waits

(6)从业务上改造:用一个中间表存最新的告警数据(最多1万条数据),马上组织项目组人员讨论方案,分配任务!

(7)2009-08-06号改造完成,上线加载,测试无问题!

 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/7743814/viewspace-611654/,如需转载,请注明出处,否则将追究法律责任。

上一篇: 没有了~
下一篇: 没有了~
请登录后发表评论 登录
全部评论

注册时间:2009-07-09

  • 博文量
    1
  • 访问量
    755