ITPub博客

首页 > 数据库 > Oracle > cpu占用过多的查找

cpu占用过多的查找

原创 Oracle 作者:yaoronghui2005 时间:2009-09-16 10:20:08 0 删除 编辑

如果sql中出现一个死循环占用了大量的user cpu(pct)则需要查询出该spid--addr--sid,serial#,sql_text然后kill session,window中使用工具qslice 或者itpub friend fuyuncat's topshow来查询出spid

v$osstat busy_time/idle_time表示cpu的繁忙率,代表的是server提供的主机中CPU是不是瓶颈属性

http://www.cnblogs.com/fenny8/archive/2009/03/16/1412839.html

http://www.eygle.com/faq/Kill_Session.htm

ORACLE CPU过高的一次调整过程
文章出处:http://www.diybl.com/course/7_databases/oracle/Oracleshl/2008810/135671.html

http://blog.chinaunix.net/u1/39379/showart_376209.html

[@more@]

Select * From v$sqlarea Where address = '2E6DC5D4'
Select * From v$session Where paddr = '3464DDBC'
Select * From v$process Where spid = 1368
Alter System Kill Session '148,9601'
Select * From v$osstat
Select * From v$sysstat
Select * From v$sesstat
Select * From v$mystat
Select * From v$sql
Select * From V$vmstat
Select * From (Select * From v$sqlarea Order By buffer_gets Desc) Where Rownum <= 10 --cpu_time for loop

Select * From v$sql Where sql_id = '2psa9b228y377'

Select * From v$sqltext Where Sql_id = '2psa9b228y377'
403438
Select * From v$session Where sql_address = '2FBBC030'
378676

Select To_number(558,'xxxx') From dual

Declare
vl_a int;
vl_b int;
begin
while true
loop
vl_a := vl_b;
end loop;
end;
/

--which sql use the cup(pct) highest
Select sql_text
From v$sqlarea
Where address=(Select sql_address From v$session Where paddr = (Select addr From v$process Where spid = to_number(558,'xxxxx')))

Alter System Kill Session

了解到了v$sql,v$sqlarea,v$sqltext,v$sql_newline

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

请登录后发表评论 登录
全部评论
  • 博文量
    153
  • 访问量
    176625