Felizmente, existe uma
maneira de ligar a geração de TRACE já no script, sem necessidade de terceiros. Vejam
o código abaixo. Depois de terminada a execução, existirá um arquivo de trace
no servidor de banco de dados com a string “TRACE_DO_MEU_PROCESSO” no nome do arquivo.
Além de ser bem mais simples do que pedir a alguém para encontrar sua sessão, ligar o trace, esperar acabar, desligar o trace e processar a saída, este método ainda permite que você trabalhe em lote: execute todos os processos necessários e posteriormente solicite aos responsáveis os arquivos resultantes: “Favor executar o comando TKPROF em todos os
arquivos de trace gerados ontem com 'PROC_FATURAMENTO' no nome do
arquivo e enviar para o e-mail X”.
declare
str varchar2(127);
begin
--
-- Ligando o Trace: coloque um texto no "identifier"
para que seu arquivo seja encontrado depois:
--
str := 'alter session set
tracefile_identifier=''TRACE_DO_MEU_ PROCESSO''';
execute immediate str;
str := 'alter session set
events ''10046 trace name context forever, level 8''';
execute
immediate str;
--
-- Fazendo o que eu tenho que fazer: aqui você
chama o seu processo
--
for i in ( select * from
user_objects ) loop
null;
end loop;
--
-- Desligando o Trace
--
str:= 'alter session set
events ''10046 trace name context off''';
execute
immediate str;
--
end;
/
Posteriormente, seus arquivos serão facilmente identificados no servidor:
[oracle@dbserver01 udump]$ ls -l
total 51672
-rw-r----- 1 oracle
oinstall 874 Nov 25 20:11 perf01_ora_27175.trc
-rw-r----- 1 oracle
oinstall 1136 Dec 4 19:15 perf01_ora_30466.trc
-rw-r----- 1 oracle oinstall 44883 Dec 4 19:37
perf01_ora_31275_TRACE_DO_MEU_PROCESSO.trc
-rw-r----- 1 oracle
oinstall 1100 Dec 1 18:41 perf01_ora_32359.trc
-rw-r----- 1 oracle
oinstall 621 Dec 1 18:41 perf01_ora_32365.trc
-rw-r----- 1 oracle
oinstall 874 Dec 1 18:41 perf01_ora_32393.trc
-rw-r----- 1 oracle
oinstall 4864 Dec 1 19:17 perf01_ora_32449.trc
Muito interessante. De fato poder gerar tudo com um unico script e sem intervenção manual de identificação de sessions dá um ganho de qualidade e agilidade no trabalho!
ResponderExcluir