alter session set sql_trace=true;
alter session set sql_trace=false;
SELECT spid
FROM v$process a, v$session b
WHERE a.addr = b.paddr AND
b.sid = sys_context('userenv', 'sid');--可以知道udump目录下的跟踪文件名。
或者以SYSDBA运行:
exec dbms_system.set_sql_trace_in_session(sid,serial#,true);
exec dbms_system.set_sql_trace_in_session(sid,serial#,false);
alter session set events '10046 trace name context forever,level 12';
alter session set events '10046 trace name context off';
exec dbms_monitor.session_trace_enable(session_id => 11,serial_num => 123,waits => true,binds => true);
10046事件可以设置以下四个级别:
1 - 启用标准的SQL_TRACE功能,等价于sql_trace
4 - Level 1 加上绑定值(bind values)
8 - Level 1 + 等待事件跟踪
12 - Level 1 + Level 4 + Level 8
当我们使用sql_trace/10046等事件进行进程跟踪时,会生成跟踪文件.跟踪文件名称由以下几部分组成:
_ora_.trc
以下脚本用户获得跟踪文件名称:
SELECT a.VALUE
|| b.symbol
|| c.instance_name
|| '_ora_'
|| d.spid
|| '.trc' trace_file
FROM (SELECT VALUE
FROM v$parameter
WHERE NAME = 'user_dump_dest') a,
(SELECT SUBSTR (VALUE, -6, 1) symbol
FROM v$parameter
WHERE NAME = 'user_dump_dest') b,
(SELECT instance_name
FROM v$instance) c,
(SELECT spid
FROM v$session s, v$process p, v$mystat m
WHERE s.paddr = p.addr AND s.SID = m.SID AND m.statistic# = 0) d
/
其实这些都很简单,关键是读懂Oracle生成的trace文件
[@more@]来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/256370/viewspace-1026091/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/256370/viewspace-1026091/