четверг, 20 декабря 2007 г.

Запуск трассировки

1. alter session set events '10046 trace name context forever, level 8';
   alter session set events '10046 trace name context off';

2. exec sys.dbms_system.set_ev(&sid, &serial, 10046, 8, '');
   
exec sys.dbms_system.set_ev(&sid, &serial, 10046, 0, '');

3. exec sys.dbms_support.start_trace_in_session(&sid, &serial, waits=>true, binds=> false);
     exec sys.dbms_support.stop_trace_in_session(&sid, &serial);

4. create or replace trigger trace_test_user after logon on database
     begin
        if user like '%\_test' escape '\' then
           execute immediate 'alter session set timed_statistics=true';
           execute immediate 'alter session set max_dump_file_size=unlimited';
           execute immediate 'alter session set events ''10046 trace name context forever, level 8''';
        end if;
     end;

     /

5. Включение трассировки, если известен PID в OC(только для UNIX)

   oradebug setospid 12449 
   oradebug event 10046 trace name context forever, level 12;
   oradebug event 10046 trace name context off;

6. Узнать какие события включены для текущей сессии(оригинал):

  rem List the events that are set this this current session.
  rem
  declare
     event_level number;
     counter number;
  begin
   counter:=0;
   for i in 10000..10999 loop
     dbms_system.read_ev(i,event_level);
     if (event_level > 0) then
        dbms_output.put_line('Event '||to_char(i)||' set at level '|| to_char(event_level));
        counter:=counter+1;
     end if;
   end loop;
   if (counter= 0 ) then
      dbms_output.put_line('No events set for this session');
   end if;
  end;
  /

7. Запуск трассировки CBO оптимизатора

ALTER SESSION SET EVENTS '10053 TRACE NAME CONTEXT FOREVER, LEVEL 1';