1.Tkprof是一个分析ORACLE跟踪文件并且产生一个更加人性化清晰的输出结果的可执行工具。C:/oracle/ora92/bin/tkprof.exe
2. tkprof 全称
参考信息
http://www.itpub.net/showthread.php?s=cbfea4845ef5b2a3f4adb00de0de9317&threadid=577624&highlight=tkprof
3. 基本的使用步骤
1) SQL> alter system set timed_statistics=true;
2) 用户级自跟踪:
SQL>ALTER SESSION SET SQL_TRACE=TRUE;
SQL>ALTER SESSION SET SQL_TRACE=FALSE;
用户级DBA跟踪:(例如sys跟踪test,需要用sysdba登录)
. a). SQL>select s.USERNAME,s.SID,s.SERIAL#,s.COMMAND from v$session s
where s.USERNAME='COLM' ;
b). SQL>exec sys.dbms_system.set_sql_trace_in_session(9,7,true);
c). SQL>exec sys.dbms_system.set_sql_trace_in_session(9,7,false);
ps:9为SID,7为SERIAL#
3) C:> cd C:/oracle/admin/COLM/udump
4) C:/oracle/admin/COLM/udump> tkprof colm_ora_2056.trc trace.txt print=100 record=sql.txt sys=no
5) 查看trace.txt文件
范例:
*******************************************************************************
SELECT *
FROM
col_case
call count cpu elapsed disk query current rows
------- ------ -------- ---------- ---------- ---------- ---------- ----------
Parse 1 0.00 0.00 0 0 0 0
Execute 0 0.00 0.00 0 0 0 0
Fetch 0 0.00 0.00 0 0 0 0
------- ------ -------- ---------- ---------- ---------- ---------- ----------
total 1 0.00 0.00 0 0 0 0
Misses in library cache during parse: 1
Optimizer goal: CHOOSE
Parsing user id: 62
需要调整的语句符合以下几点:
(1).CPU占用过多
(2).Parse,Execute,Fetch花费太多时间
(3).DISK读取太多,query/current(SGA)中数据块读取太少
(4).访问许多块,只返回2行