1 先从os上利用top命令找到当前占用cpu资源最高的一个进程的PID号:14483
load averages: 1.53, 1.37, 1.39 db2 23:11:15
246 processes: 236 sleeping, 1 running, 2 zombie, 4 stopped, 3 on cpu
CPU states: 68.0% idle, 17.3% user, 3.0% kernel, 11.6% iowait, 0.0% swap
Memory: 16.0G real, 3.4G free, 9.7G swap in use, 11.0G swap free
PID USERNAME THR PR NCE SIZE RES STATE TIME FLTS CPU COMMAND
14483 oracle 1 51 0 8.8G 8.8G sleep 77.1H 1 5.69% oracle
28222 oracle 1 52 0 8.8G 8.8G cpu18 93:55 2742 3.32% oracle
3722 oracle 1 59 0 8.8G 8.8G sleep 157:41 0 0.45% oracle
16077 oracle 1 59 0 8.8G 8.8G sleep 17.1H 0 0.34% oracle
12687 oracle 1 59 0 8.8G 8.8G sleep 0:07 0 0.29% oracle
17781 oracle 1 49 0 8.8G 8.8G run 91:11 8 0.24% oracle
2359 oracle 1 59 0 8.8G 8.8G cpu19 524:53 0 0.12% oracle
6559 oracle 1 59 0 8.8G 8.8G sleep 237:41 0 0.10% oracle
2242 oracle 1 59 0 8.8G 8.8G sleep 980:56 0 0.09% oracle
2356 oracle 1 59 0 8.8G 8.8G sleep 121:31 0 0.08% oracle
16106 oracle 1 59 0 8.8G 8.8G sleep 168:44 0 0.05% oracle
11432 oracle 1 49 0 2576K 1680K cpu11 0:11 0 0.05% top
2333 oracle 1 59 0 8.9G 8.8G sleep 159:03 0 0.05% oracle
2321 oracle 1 59 0 8.8G 8.8G sleep 78:20 0 0.04% oracle
2282 oracle 1 59 0 8.8G 8.8G sleep 424:57 0 0.03% oracle
然后在数据库中根据PID号找到相应的sid号和serial#:
SQL> select s.sid,s.serial# from v$session s,v$process p
2 where s.paddr=p.addr and p.spid='14483';
SID SERIAL#
---------- ----------
101 25695
使用dbms_system.set_sql_trace_in_session包来对这个session进行trace:
SQL> exec DBMS_SYSTEM.SET_SQL_TRACE_IN_SESSION(101,25695,true);
PL/SQL procedure successfully completed.
到user_dump_dest定义的路径下查找刚刚最近生成的trace文件,根据时间来排序,找最近的trace文件,接着使用tkprof工具对此trace文件进行格式化分析,生成分析后的trace文件。
$tkprof orcl_ora_14483.trc allan.txt explain=system/manager aggregate=yes sys=no waits=yes sort=fchela
TKPROF: Release 9.2.0.4.0 - Production on Sun Dec 5 22:27:28 2004
Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.
这里生成的allan.txt文件就是我们最终得到的格式化后的trace文件了,然后打开这个文件进行分析。
一、首先tkprof工具输出的最后总的统计:
OVERALL TOTALS FOR ALL RECURSIVE STATEMENTS
call count cpu elapsed disk query current rows
------- ------ -------- ---------- ---------- ---------- ----------
Parse 20 0.01 0.02 0 58 0 0
Execute 13197 0.81 0.90 17 7436 6316 1484
Fetch 12944 22.86 22.10 20 2205941 0 8972
------- ------ -------- ---------- ---------- ---------- ----------
total 26161 23.68 23.02 37 2213435 6316 10456<