两种方法:修改注册表,或者通过SQL。
修改注册表的值
\\HKEY_CURRENT_USER\Software\Oracle\Discoverer\Database\SqlTrace
type DWORD
numeric value 1
使用这个的前提是需要trace的工作簿查询尚未运行。如果已经运行了,可以通过方法2来完成。
另,完成trace之后,别忘记更改回去。
通过SQL
a. 通过如下SQL定位discoverer的session以及spid。从而可以对对应的session进行跟踪。从而可以通过spid知道trace文件的名称。
SELECT s.SID, s.serial#, s.username, s.program, p.spid
FROM v$session s, v$process p
WHERE p.addr = s.paddr
AND s.program LIKE '%DIS4USR.EXE%'
得到
SID:72 serial#49228 SPID:5865
SID:132 serial#56294 SPID:5877
b. ENABLE TRACE
exec dbms_system.set_sql_trace_in_session(72, 49228, TRUE)
exec dbms_system.set_sql_trace_in_session(132, 56294, TRUE)
c. 执行discoverer相关操作,例如运行工作簿,共享工作簿等。
d. 从文件菜单中推出discoverer,这一步比较重要,如果是进行性能分析话,保证执行计划相关资源数据的完整性。
e. Disable trace.
f. 通过步骤a得到的spid,从数据库下载对应的trace文件。格式化trace文件,判断哪一个是需要的trace文件,对正确的trace文件进行分析。
tkprof onidau1_ora_5865.trc 14_2_1.txt sys = no;
tkprof onidau1_ora_5877.trc 14_2_2.txt sys=no;
参考:metalink. Note:273928.1
2007年8月14日星期二
订阅:
博文评论 (Atom)
没有评论:
发表评论