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とserial#を調べます。
select sid, serial
where ...your_search_params...
--10046イベントからトレースを開始できます。4番目のパラメーターはトレースレベルを設定します(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オリジナルはより充実していますが、とにかくこれは他の人が私見に投稿したものよりも優れています