2007年8月14日星期二

Trace Discoverer Workbook

两种方法:修改注册表,或者通过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

没有评论: