通常,诊断PL/SQL程序执行性能都是在本地用explain plan,或者alter session来使用tkprof进行简单分析。但这样的做法比较麻烦,也比较片段。如果想预先简单的跟踪一下程序性能,可以直接将EBS用户的SQL执行生成trace文件。步骤如下:
1. Help -> About Oracle Applications…
在Database栏找到以下信息:
—————————————-
Database Server
—————————————-
RDBMS : 9.2.0.6.0
Oracle Applications : 11.5.10.2
Machine : erpapp
User : APPS
Oracle SID : PROD
System Date : 2007-07-18 09:11:15
Database Server PID : 20515
Session SID : 46
SERIAL# : 33357
AUDSID : 3442824
Database CPU Usage (in secs) : 2.62
2. 执行SQL
DECLARE
BEGIN
sys.dbms_system.set_sql_trace_in_session(46, 33345, TRUE);
END;
3. 找到trace文件
SELECT u_dump.VALUE || '/' || db_name.VALUE || '_ora_' || v$process.spid ||
nvl2(v$process.traceid, '_' || v$process.traceid, NULL) || '.trc' "Trace File"
FROM v$parameter u_dump
CROSS JOIN v$parameter db_name
CROSS JOIN v$process
JOIN v$session ON v$process.addr = v$session.paddr
WHERE u_dump.NAME = 'user_dump_dest'
AND db_name.NAME = 'db_name'
AND v$session.audsid = 3442018;
登录服务器tkprof比较麻烦,推荐一下SwingBench Trace Analyzer,有PP的图形界面。