Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Explicar o ponto problemático do custo do plano


Hoje cedo, eu estava trabalhando com um desenvolvedor em uma consulta que teve um desempenho ruim. Essa consulta era grande e complexa e, inicialmente, parecia um esforço assustador para descobrir onde está o problema de desempenho. Com o Explain Plan, às vezes podemos usar o custo para ajudar a diminuir o ponto problemático de desempenho de uma consulta grande e complexa.

Observando um plano de explicação dessa consulta, podemos ver que seu custo geral é bastante alto.



Ao observar os detalhes, podemos ver que o FULL table scan (FTS) na tabela DETAIL_RECORD tem um alto custo de 51018. Observe como o alto custo do FTS se propaga no plano. Todas as operações acima deste STF têm um custo elevado devido ao alto custo deste acesso à mesa única. O acesso à tabela CIMS_POLICIES_TO_PROCESS tem um custo relativamente baixo, mas a operação HASH JOIN recebe seu alto custo apenas devido ao alto custo para acessar a tabela DETAIL_RECORD.

O custo total é apenas um pouco mais do que o custo para acessar esta tabela. É claro que o FTS nesta tabela é o maior contribuinte para o ponto problemático dessa consulta que está sendo analisada.

Ao analisar os custos do Plano de Explicação dessa maneira, conseguimos nos concentrar muito rapidamente em uma área de uma consulta muito complexa que está causando mais problemas de desempenho. Sem a análise de custo feita aqui, determinar qual parte da consulta abaixo está causando o problema teria sido muito trabalhoso.