23.11.2008 г.
select sid, serial#, username, machine, program from v$session;
можно уточнить запрос с помощью where, например, так:
select sid, serial#, username, machine, program from v$session where username = 'scott';
select p.spid, s.username, s.machine, s.program from v$session s, v$process p where s.paddr=p.addr;
нас интересует p.spid
Можно упростить процесс следующим запросом (если мы знаем SID интересующей(их) нас сессии(й):
select u_dump.value
|| '/'
|| db_name.value
|| '_ora_'
|| v$process.spid
|| nvl2(v$process.traceid, '_' || v$process.traceid, null )
|| '.trc' "Trace File"
from v$parameter u_dump
cross join v$parameter db_name
cross join v$process
join v$session on v$process.addr = v$session.paddr
where u_dump.name = 'user_dump_dest'
and db_name.name = 'db_name'
and v$session.sid in (&SID)
/
alter system set timed_statistics=true;
begin sys.dbms_system.set_ev(131, 1388, 10046, 12, ''); end; /
Где:
begin sys.dbms_system.set_ev(131, 1388, 10046, 0, ''); end; /
select value from v$parameter p where name='user_dump_dest';
tkprof db01_ora_1756.trc d:\out.txt
Файл должен иметь имя следующего вида <ORACLE_SID>_ora_<p.spid>.trc
Где:
Пользователю должны быть выданы полномочия:
grant alter session to <USER>;
alter session set timed_statistics=true;
alter session set max_dump_file_size='20M';
alter session set tracefile_identifier="MyTrace";
alter session set sql_trace=true;
или
alter session set events '10046 trace name context forever, level 12';
Где level:
Отключить трассировку:
alter session set sql_trace=false;
или
alter session set events '10046 trace name context off';
Пользователю должны быть выданы полномочия:
grant alter session to <USER>; grant select any dictionary to <USER>
Включить трассировку:
set autotrace on;
Выполняем, например:
select table_name from user_tables;
Отключить трассировку:
set autotrace on;