Opa!
Quando queremos analisar o desempenho de um programa, utilizamos um processo chamado TRACE. O TRACE analisa a execução de um programa, fornecendo alguns dados para que possamos entender como o otimizador do banco de dados executou determinados comandos SQL que por ventura existam dentro do programa que esta sendo monitorado. Estes dados são guardados dentro de um arquivo com a extensão “.trc”, que fica gravado em um diretório do servidor. A QUERY abaixo pode ser utilizada para mostrar onde estes arquivos foram gerados e salvos. Basta informarmos o id da solicitação (id do concorrente), representado na QUERY por “&request”.
select 'Request id: '||request_id ,
'Trace id: '||oracle_Process_id,
'Trace Flag: '||req.enable_trace,
'Trace Name: '||dest.value||'/'||lower(dbnm.value)||'_ora_'||oracle_process_id||'.trc',
'Prog. Name: '||prog.user_concurrent_program_name,
'File Name: '||execname.execution_file_name|| execname.subroutine_name ,
'Status : '||decode(phase_code,'R','Running') ||'-'||decode(status_code,'R','Normal'),
'SID Serial: '||ses.sid||','|| ses.serial#,
'Module : '||ses.module
from fnd_concurrent_requests req
,v$session ses
,v$process proc
,v$parameter dest
,v$parameter dbnm
,fnd_concurrent_programs_vl prog
,fnd_executables execname
where req.request_id = &request
and req.oracle_process_id = proc.spid(+)
and proc.addr = ses.paddr(+)
and dest.name = 'user_dump_dest'
and dbnm.name = 'db_name'
and req.concurrent_program_id = prog.concurrent_program_id
and req.program_application_id = prog.application_id
and prog.application_id = execname.application_id
and prog.executable_id = execname.executable_id
Embora, nosso exemplo esteja sendo focado para o Oracle Application, o comando TRACE pode ser utilizado para outros programas e comandos SQL que não fazem parte desta suíte de aplicativos.
Forte abraço!
Nenhum comentário:
Postar um comentário