在Linux下捕获问题SQL解决CPU过渡消耗

问题描述
  开发人员报告系统运行缓慢,已经影响业务系统正常使用.请求协助诊断.

      1.登陆数据库主机
  使用vmstat检查,发现CPU资源已经耗尽,大量任务位于运行队列:


      2.使用Top命令
  观察进程CPU耗用,发现没有明显过高CPU使用的进程

      3.检查进程数量
      bash-2.03$ ps -ef|grep ora|wc -l

      258


      发现系统存在大量Oracle进程,大约在300左右,大量进程消耗了几乎所有CPU资源,而正常情况下Oracle连接数应该在100左右.


      4.检查数据库
  查询v$session_wait获取各进程等待事件

SQL> select sid,event,p1,p1text from v$session_wait;

 

 

        发现存在大量db file scattered read及db file sequential read等待.显然全表扫描等操作成为系统最严重的性能影响因素.

阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页