alter system set timed_statistics=true
- 要么
alter session set timed_statistics=true
-必须足够大:
select value from v$parameter p
where name='max_dump_file_size'
-找出您感兴趣的会话的sid和序列号:
select sid, serial
where ...your_search_params...
-您可以从10046事件开始跟踪,第四个参数设置跟踪级别(最大为12):
begin
sys.dbms_system.set_ev(sid, serial
end;
-通过设置零电平关闭跟踪:
begin
sys.dbms_system.set_ev(sid, serial
end;
/ *可能的级别:0-关闭1-最低级别。类似于set sql_trace = true 4-将绑定变量值添加到跟踪文件8-添加等待项12-同时添加绑定变量值和等待事件* /
-同样,如果您想以更高的级别跟踪自己的会话:
alter session set events '10046 trace name context forever, level 12';
- 关掉:
alter session set events '10046 trace name context off';
-包含原始跟踪信息的文件将位于:
select value from v$parameter p
where name='user_dump_dest'
-文件名(* .trc)将包含spid:
select p.spid from v$session s, v$process p
where s.paddr=p.addr
and ...your_search_params...
-您也可以自己设置名称:
alter session set tracefile_identifier='UniqueString';
-最后,用于TKPROF
使跟踪文件更具可读性:
C:\ORACLE\admin\databaseSID\udump>
C:\ORACLE\admin\databaseSID\udump>tkprof my_trace_file.trc output=my_file.prf
TKPROF: Release 9.2.0.1.0 - Production on Wed Sep 22 18:05:00 2004
Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.
C:\ORACLE\admin\databaseSID\udump>
-查看跟踪文件使用状态:
set serveroutput on size 30000;
declare
ALevel binary_integer;
begin
SYS.DBMS_SYSTEM.Read_Ev(10046, ALevel);
if ALevel = 0 then
DBMS_OUTPUT.Put_Line('sql_trace is off');
else
DBMS_OUTPUT.Put_Line('sql_trace is on');
end if;
end;
/
只是翻译过的一种http://www.sql.ru/faq/faq_topic.aspx?fid=389原始版本比较完整,但是无论如何,这比其他人发布的恕我直言要好