在LINUX系统下查耗用CPU的SQL语句

经常有同事找我:我们的系统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));

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

转载于:http://blog.itpub.net/4555/viewspace-711106/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值