首页 > 开发 > 综合 > 正文

查找消耗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;

根据结果进行分析和改进。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表