一次oracle 数据库把整个服务器的cpu 都消耗干净了,紧急定位了一下,步骤如下:
1. 查询哪个进程消耗cpu 比较多
select ss.sid,se.command,ss.value CPU ,se.username,se.program
from v$sesstat ss, v$session se
where ss.statistic# in
(select statistic#
from v$statname
where name = 'CPU used by this session')
and se.sid=ss.sid
and ss.sid>6
order by ss.sid;
2.看到上述几个占据cpu 比较多的SID
3.PL/SQL 客户端 工具--》会话,查看是哪个机器造成的。
我们当时的场景是多个机器同连一个数据库,其中一台机器疯狂的sql 查询耗尽了数据库性能。