Trace em uma sessão
Esta semana precisei efetuar um trace em uma sessão de um aplicativo e resolvi postar o procedimento.
Descobrindo a sessão
Para descobrir a sessão, usualmente utilizamos a view V$SESSION e com alguma informação relevante, tipo o usuário do banco, o aplicativo utilizado ou mesmo o nome do computador utilizado. No meu caso o usuário era único no banco de dados, portanto efetuei uma consulta simples.
SQL> select sid, serial# from v$session where username = 'USER';
SID SERIAL#
------- ------------
25 1468
De posse dos dados, vamos habilitrar o trace.
Habilitando o trace
SQL> exec dbms_system.set_sql_trace_in_session(25, 1468, TRUE);
Trace ativo, a partir deste momento tudo que ocorrer na sessão será gravada em arquivo de trace. Aguarde a finalização da sessão ou a confirmação do usuário para encerrar o trace.
Desabilitando o trace
SQL> exec dbms_system.set_sql_trace_in_session(25, 1468, FALSE);
Os arquivos de trace são gravados no diretório dump de usuários, localize através do parâmetro USER_DUMP_DEST.
SQL> show parameter user_dump_dest
Neste diretório estarão os arquivos de trace dos usuários e o arquivo que foi gravado através deste procedimento.
Bom proveito.
[]s