alter system set timed_statistics=true
--oder
alter session set timed_statistics=true --if want to trace your own session
- muss groß genug sein:
select value from v$parameter p
where name='max_dump_file_size'
- Finden Sie die Seiten- und Seriennummer der Sitzung heraus, an der Sie interessiert sind:
select sid, serial# from v$session
where ...your_search_params...
- Sie können mit dem Ereignis 10046 mit der Ablaufverfolgung beginnen. Der vierte Parameter legt die Ablaufverfolgungsstufe fest (12 ist die größte):
begin
sys.dbms_system.set_ev(sid, serial#, 10046, 12, '');
end;
- Deaktivieren Sie die Ablaufverfolgung mit der Einstellung Null:
begin
sys.dbms_system.set_ev(sid, serial#, 10046, 0, '');
end;
/ * mögliche Pegel: 0 - ausgeschaltet 1 - minimaler Pegel. Ähnlich wie set sql_trace = true 4 - Bindungsvariablenwerte werden zur Tracedatei 8 hinzugefügt - Wartezeiten werden hinzugefügt 12 - sowohl Bindungsvariablenwerte als auch Warteereignisse werden hinzugefügt * /
--same, wenn Sie Ihre eigene Sitzung mit größerem Level verfolgen möchten:
alter session set events '10046 trace name context forever, level 12';
--schalte aus:
alter session set events '10046 trace name context off';
--Datei mit rohen Trace-Informationen wird gefunden:
select value from v$parameter p
where name='user_dump_dest'
--name der Datei (*. trc) enthält spid:
select p.spid from v$session s, v$process p
where s.paddr=p.addr
and ...your_search_params...
- Sie können den Namen auch selbst festlegen:
alter session set tracefile_identifier='UniqueString';
--finieren Sie, um TKPROF
die Ablaufverfolgungsdatei lesbarer zu machen:
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>
- Um den Status der Tracedatei anzuzeigen, verwenden Sie:
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;
/
Nur irgendwie übersetzt http://www.sql.ru/faq/faq_topic.aspx?fid=389 Original ist voller, aber trotzdem ist dies besser als das, was andere meiner Meinung nach gepostet haben