alter system set timed_statistics=true
--o
alter session set timed_statistics=true
- deve essere abbastanza grande:
select value from v$parameter p
where name='max_dump_file_size'
- Scopri sid e numero di serie della sessione a cui sei interessato:
select sid, serial
where ...your_search_params...
- puoi iniziare a tracciare con 10046 eventi, il quarto parametro imposta il livello di traccia (12 è il più grande):
begin
sys.dbms_system.set_ev(sid, serial
end;
- disattivare il tracciamento con l'impostazione del livello zero:
begin
sys.dbms_system.set_ev(sid, serial
end;
/ * livelli possibili: 0 - disattivato 1 - livello minimo. Proprio come set sql_trace = true 4 - i valori delle variabili di bind vengono aggiunti al file di traccia 8 - vengono aggiunte le attese 12 - vengono aggiunti sia i valori delle variabili di bind che gli eventi di attesa * /
- lo stesso se vuoi tracciare la tua sessione con un livello maggiore:
alter session set events '10046 trace name context forever, level 12';
--Spegni:
alter session set events '10046 trace name context off';
- il file con le informazioni di traccia non elaborate verrà individuato:
select value from v$parameter p
where name='user_dump_dest'
--name del file (*. trc) conterrà spid:
select p.spid from v$session s, v$process p
where s.paddr=p.addr
and ...your_search_params...
- inoltre puoi impostare il nome da solo:
alter session set tracefile_identifier='UniqueString';
- infine, utilizzare TKPROF
per rendere il file di traccia più leggibile:
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>
- per visualizzare lo stato di utilizzo del file di traccia:
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;
/
Solo un po 'tradotto http://www.sql.ru/faq/faq_topic.aspx?fid=389 L' originale è più pieno, ma comunque questo è meglio di quello che altri hanno pubblicato IMHO