通常,诊断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的图形界面。