查找消耗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;
根據結果進行分析和改進。