Agora que já sabemos o que é e como ativar o arquivo de trace do Oracle, vamos analisar o seu conteúdo buscando por problemas de desempenho.
Procure conhecer qual é o tempo total gasto pela rotina que está apresendando o desempenho indesejável. Essa informação é determinante para avaliar se a lentidão é causada pelo banco de dados.
Abra o arquivo resultante do processo realizado pelo utilitário TKPROF e procure, no final deste arquivo, pela frase “OVERALL TOTALS FOR ALL NON-RECURSIVE STATEMENTS”. Nas linhas que seguem procure pelo total da coluna “elapsed”. Na figura a seguir o valor que desejamos está circulado em vermelho:

Este é o tempo gasto pelo banco de dados em segundos. Se ele for pequeno comparado ao tempo total gasto pela rotina, esqueça o banco de dados porque ele não é o culpado pela lentidão. Senão, procure no arquivo pelos comandos que possuem alto valor nesta mesma coluna. O tkprof possui uma opção (sort=exeela) com a qual é possível ordenar a geração deste arquivo mostrando por primeiro os comandos que gastaram mais tempo.
A partir daí a análise deve ser comando a comando. Na próxima figura identificamos um dos comandos que mais demorou para executar:

Todos os dados relevantes ao comando estão agrupadas entre as linhas com o caracter “*”.
Na primeira parte é apresentada a consulta SQL. Observe a utilização das variáveis de substituição (BIND). Logo após uma ‘tabela’ com a ‘contabilidade’ deste comando. Observe que ele foi executado mais de um milhão de vezes, totalizando 395 segundos e movimentando mais de 3 milhões de registros.
Em seguida o plano de execução juntamente com informações relevantes a sua construção e parâmetros que o influenciam.
Finalmente a relação dos eventos pelos quais o comando precisou aguardar até concluir o seu trabalho.
Prosseguir com os próximos comandos relevantes quanto ao tempo gasto (elapsed time).
A análise de cada comando, com suas estatísticas e planos de execução, não é o objetivo deste post. Portanto detalhes sobre os números ali apresentados e pareceres sobre a sua eficiência serão abortados em publicações futuras.
Com base na análise destes pontos é possível identificar quais comandos devem ser melhorados nas aplicações e também um eventual tuning na base de dados.
Informações detalhadas podem ser obtidas na documentação da Oracle, além dos vários blogs existentes sobre o assunto.