5 способов включить SQL trace

http://www.oradba.com.ru/tuning/optimizer/tips/t2_sqltrace.shtml

Для своей сессии
SQL> alter session set sql_trace = true;

Или

SQL> alter session set events '10046 trace name context forever, level ';

где Level:0 Выключить трейс (default)
1 Включить трейс. Эквивалентна предыдущему способу
4 Добавить в трейс информацию о значениях bind-переменных
8 Добавить в трейс информацию о wait'ax
12 Комбинация уровней 4 и 8


Для любой сессии
SQL> exec sys.dbms_system.set_sql_trace_in_session(,
[Error: Irreparable invalid markup ('<serial#>') in entry. Owner must fix manually. Raw contents below.]

http://www.oradba.com.ru/tuning/optimizer/tips/t2_sqltrace.shtml

Для своей сессии
SQL> alter session set sql_trace = true;

Или

SQL> alter session set events '10046 trace name context forever, level <Level>';

где Level:0 Выключить трейс (default)
1 Включить трейс. Эквивалентна предыдущему способу
4 Добавить в трейс информацию о значениях bind-переменных
8 Добавить в трейс информацию о wait'ax
12 Комбинация уровней 4 и 8


Для любой сессии
SQL> exec sys.dbms_system.set_sql_trace_in_session(<SID>, <serial#>, true);

Или

SQL> exec sys.dbms_system.set_ev(<SID>, <serial#>, 10046, <Level>, '');

Значения SID и serial# сессии Вы можете найти в v$session.
На уровне экземпляра для всех сессий

В файле конфигурации init<SID>.ora необходимо выставить параметр sql_trace = true и перегрузить экземпляр.

Этим способом рекомендуется пользоваться лишь в крайних случаях, поскольку на нагруженных базах трассировка всех сессий будет создавать значительную нагрузку на сервере.
Бонус !!!

Изначально, я забыл упомянуть еще один ( шестой :-) способ включения трейса. Подсказал коллега, спасибо. Вы можете сделать трассировку любого серверного процесса, используя oradebug. Зная SID процесса можно получить его PID (Oracle Process Identifier) или его SPID (Operating System process identifier)
SQL> select p.spid, p.pid
2 from v$process p, v$session s
3 where p.addr = s.paddr
4 and s.sid = &sid;

Затем "закрепить" процесс, выполнив любую из команд:
SVRMGR> oradebug setospid <SPID>

либо
SVRMGR> oradebug setorapid <PID>

И наконец, включить трассировку командой:
SVRMGR> oradebug event 10046 trace name context forever, level <Level>
Еще один вариант

Прислал Андрей Бурмаков (many thanks!). Вариант известный, описан у Кайта и на многих других ресурсах, посвященных Oracle, но был незаслужено обойден моим вниманием. Для включения трассировки на уровне сессии используется logon-тригер. Этот вариант исключительно полезен, когда необходимо получить трейс сессии, которая работает очень непродолжительное время (секунды).
CREATE OR REPLACE TRIGGER trace_login_trigger
AFTER logon ON DATABASE
BEGIN
IF (USER = '<test_user>') THEN
EXECUTE IMMEDIATE 'ALTER SESSION SET EVENTS ''10046 trace name
context forever, level ''';
END IF;
END;
/

По завершении сбора данных, можно перевести тригер в состояние 'DISABLE' до тех пор, пока нам не понадобится вновь трассировать сессии данного пользователя.