查找消耗CPU较大的sql语句

发表于:2007-07-02来源:作者:点击数: 标签:
查找消耗CPU较大的sql语句 一、使用 unix 系统命令查看资源 #sar 1 9 12:15:27 73 27 0 012:15:28 70 30 0 012:15:29 80 20 0 012:15:30 84 16 0 012:15:31 21 5 1 73 #top TTY PID USERNAME PRI NI SIZE RES STATE TIME %WCPU %CPU COMMAND ? 23093 oracle

查找消耗CPU较大的sql语句



一、使用unix系统命令查看资源

#sar 1 9

12:15:27      73      27       0       012:15:28      70      30       0       012:15:29      80      20       0       012:15:30      84      16       0       012:15:31      21       5       1      73

#top

 TTY     PID USERNAME PRI NI   SIZE    RES STATE    TIME %WCPU  %CPU COMMAND  ?    23093 oracle   154 20 29748K  3112K run   20:53  4.59  4.58 oraclebv  ?    23087 oracle   154 20 29636K  3016K run   24:18  0.93  0.93 oraclebv

二、使用oracle数据字典查找sql

SQL>set line 240SQL>set verify offSQL>column sid format 999SQL>column pid format 999 SQL>column S_# format 999SQL>column username format A9 heading "ORA User"SQL>column program  format a29SQL>column SQL format a60SQL>COLUMN OSname format a9 Heading "OS User"SQL>SELECT P.pid pid,S.sid sid,P.spid spid,S.username username,S.osuser osname,P.serial# S_#,P.terminal,P.program  program,P.background,S.status,a.sql_text SQLFROM v$process P, v$session S,v$sqlarea A WHERE P.addr = s.paddrAND S.sql_address = a.address (+)  AND P.spid LIKE @#%&1%@#;
Enter value for 1: 23209(系统消耗较大进程id)
找到结果:

select * from clearcase/" target="_blank" >cc_por where status=1 and deleted=0

使用autotrace分析语句。

sql>set timing on

sql>set autotrace on

sql>select * from cc_por where status=1 and deleted=0;

根据结果进行分析和改进。

原文转自:http://www.ltesting.net