查找消耗CPU较大的sql语句
2024-07-21 02:05:34
供稿:网友
注册会员,创建你的web开发资料库,
查找消耗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 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;
根据结果进行分析和改进。