经常有同事找我:我们的系统CPU接近100%了,帮我看看是那条SQL造成的。现在给出方法,以方便大家自己查询。
a)
在LINUX中用”top d 2”命令查看
注意观察一段时间,找出CPU耗用持续比较高的ORACLE进程的PID值。比如:上例中的25325
b) 查看此进程对应执行的SESSION
select * from v$process where spid =25325;
查到ADDR为“00000003D11231F0”,继续查其对应的SESSION:
select * from v$session where paddr = '00000003D11231F0';
查到SID为58,知道是哪个SESSION之后就好办了,直接查看这个SESSION执行的SQL(可以直接从PL/SQL Developer工具的Sessions中看SQL Text),然后进行分析即可。
采用单条SQL完成上述任务:
SELECT * FROM v$sql WHERE hash_value =
(SELECT sql_hash_value FROM v$session WHERE paddr = (SELECT addr FROM v$process WHERE spid =用TOP命令看到的PID));
a)
在LINUX中用”top d 2”命令查看
注意观察一段时间,找出CPU耗用持续比较高的ORACLE进程的PID值。比如:上例中的25325
b) 查看此进程对应执行的SESSION
select * from v$process where spid =25325;
查到ADDR为“00000003D11231F0”,继续查其对应的SESSION:
select * from v$session where paddr = '00000003D11231F0';
查到SID为58,知道是哪个SESSION之后就好办了,直接查看这个SESSION执行的SQL(可以直接从PL/SQL Developer工具的Sessions中看SQL Text),然后进行分析即可。
采用单条SQL完成上述任务:
SELECT * FROM v$sql WHERE hash_value =
(SELECT sql_hash_value FROM v$session WHERE paddr = (SELECT addr FROM v$process WHERE spid =用TOP命令看到的PID));
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/4555/viewspace-711106/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/4555/viewspace-711106/