产生和分析跟踪trace文件是性能调优的重要手段。当我们对FORM跟踪所产生的trace文件进行分析的时候,有两种分析工具可以进行选择。一种是所有DBA都熟悉的工具tkprof,另一种就是oracle为EBS提供的trcanlzr。今天我对这个工具的使用做了一个测试。分析的结果很详细,特别是漂亮的html格式的输出让人感到惊喜。这个工具可以直接从metalink上下载。下面我简单的介绍一下这个工具的使用。
安装篇。
主要执行tacreate.sql这个脚本,注意要以SYSDBA的角色执行。脚本运行的过程中需要输入5个参数,分别是:TRCANLZR password;Optional Host String (TNS Alias);TRCANLZR default tablespace;
TRCANLZR temporary tablespace;Type of object for large staging tables(我一般选全局临时表).
卸载篇。
以SYSDBA的角色直接执行tadrop.sql脚本。
使用篇。
$sqlplus [apps user]/[apps pwd]
SQL> start trcanlzr.sql [name of your trace file]
这个地方需要注意了,trace file千万不要带路径,只要指定文件名就可以了,否则无法生成report。我当时输入了全路径,结果报错信息如下:
$ more trcanlzr_42998.txt
*** Directory alias does not exist in DBA_DIRECTORIES
$ more trcanlzr_42998.log
Trace Analyzer 11.2.6.1 installed on 20090327
Execution ID: 42998 started at 2009-03-27 13:56:03
In case of premature termination, read trcanlzr_error.log located in SQL*Plus default directory
/*************************************************************************************/
13:56:03 => parse_main
13:56:03 analyzing input file /u01/oradev/devdb/9.2.0/admin/dev_erptest/udump/dev_ora_1642610_SJH.trc in /u01/oradev/devdb/9.2.0
/admin/dev_erptest/udump
13:56:03 -> parse_file
13:56:03 parsing file /u01/oradev/devdb/9.2.0/admin/dev_erptest/udump/dev_ora_1642610_SJH.trc in /u01/oradev/devdb/9.2.0/admin/d
ev_erptest/udump
13:56:03 ***
13:56:03 *** Module: parse_file
13:56:03 *** File name: /u01/oradev/devdb/9.2.0/admin/dev_erptest/udump/dev_ora_1642610_SJH.trc
13:56:03 *** File size: UNKNOWN bytes
13:56:03 *** Temp CLOB Count: 0
13:56:03 *** Lines parsed: 0
13:56:03 *** Bytes parsed: 0
13:56:03 *** Parsing progress: 0%
13:56:03 *** ORA-22288: file or LOB operation FILEOPEN failed
No such file or directory
13:56:03 ***
13:56:03 *** Module: parse_main
13:56:03 *** File name: /u01/oradev/devdb/9.2.0/admin/dev_erptest/udump/dev_ora_1642610_SJH.trc
13:56:03 *** Directory: TRCA$INPUT /u01/oradev/devdb/9.2.0/admin/dev_erptest/udump
13:56:03 *** ORA-22288: file or LOB operation FILEOPEN failed
No such file or directory
13:56:03 ***
13:56:03 ORA-22288: file or LOB operation FILEOPEN failed
No such file or directory
13:56:03 trcanlzr.trca$i.trcanlzr.trca$p.parse_main
13:56:03 p_file_name:"/u01/oradev/devdb/9.2.0/admin/dev_erptest/udump/dev_ora_1642610_SJH.trc"
13:56:03 l_file_name:"/u01/oradev/devdb/9.2.0/admin/dev_erptest/udump/dev_ora_1642610_SJH.trc"
13:56:03 x_tool_execution_id:"42998"
13:56:03 p_directory_alias_in:""
13:56:03 p_directory_alias_out:""
13:56:03 p_file_name_log:""
13:56:03 p_file_name_html:""
13:56:03 p_file_name_txt:""
/*************************************************************************************/
Trace Analyzer executed successfully.
There are no fatal errors in this log file.
Execution ID: 42998 completed at 2009-03-27 13:56:03
SQL>select * from DBA_DIRECTORIES;
SYS APPS_DATA_FILE_DIR
/u01/oradev/devdb/9.2.0/appsutil/outbound/dev_erptest
SYS ECX_UTL_LOG_DIR_OBJ
/usr/tmp
SYS ECX_UTL_XSLT_DIR_OBJ
/usr/tmp
SYS TRCA$INPUT
/u01/oradev/devdb/9.2.0/admin/dev_erptest/udump
SYS TRCA$OUTPUT
/u01/oradev/devdb/9.2.0/admin/dev_erptest/udump
--目录已经存在了。
SQL> start trcanlzr.sql control_file.txt <== your text file
--假如你要分析多个trace文件,可以将这些文件名写入到控制文件。输入目录和输出目录默认是udump,你也可以运行tacdiri.sql,tacdiro.sql进行改变。运行trcanlzrnc.sql产生的文件会从服务器目录copy到sql*plus的默认目录。如果想避免这种copy可以用trcanlzrnc.sql替换trcanlzr.sql。
设置篇。
跟tkprof一样,我们也可以对它的输出客制化。举个例子:
SQL> EXEC trcanlzr.trca$g.set_param('Name', 'Value'); --语法
SQL> EXEC trcanlzr.trca$g.set_param('gen_text_report', 'N'); --'gen_text_report'的默认值是Y,现在改为N。
--脚本运行的结果会产生四个文件:log,txt,html这三个文件的命名方法为“trcanlzr_‘TOOL_EXECUTION_ID’. 最后一个是trcanlzr_error.log文件。关于更详细的用法,请参考这个工具的instructions.txt。
from:http://blog.chinaunix.net/u/10516/showart_1882035.html