Este artigo trata dos conceitos envolvidos na análise de um plano de execução proveniente do comando explain plan em banco de dados relacionais.
Para que serve?
Esclarecer e desmistificar os mecanismos intrínsecos das etapas de elaboração do plano de execução.
Em que situação o tema é útil?
Através da correta interpretação do plano é possível refinar e redirecionar a execução, por conseguinte atingir um melhor desempenho.
No contexto de um SGBDR (Sistema Gerenciador de Banco de Dados Relacional), o plano de execução (execution plan), também conhecido por plano de acesso (access plan) ou caminho de acesso (access path), apresenta o planejamento a cobrir e atender às requisições de manipulação de dados oriundas de instruções SQL (Structured Query Language). A estratégia desse planejamento é determinada por um mecanismo interno e complexo de aferição conhecido por otimizador de consultas (query optimizer).
O plano de execução costuma, por vezes, intimidar e incorporar incertezas ao escopo da análise de desempenho, entretanto, com certo discernimento, evidencia as escolhas consumadas as quais em muitos casos podem e devem ser refinadas a fim de atingir um melhor tempo de resposta.
O artigo abordará o que você sempre quis saber e jamais alguém soube lhe explicar. Muitos dos termos utilizados ao longo do texto serão mantidos em inglês técnico para a manutenção do seu teor e conteúdo original. Através de uma linguagem acessível serão apresentados conceitos básicos para a leitura e compreensão de planos de execução, que invariavelmente exige familiaridade com os seguintes tópicos:
· Interpretação de predicados.
o Seletividade versus Densidade.
o Cardinalidade.
o Custo.
o Estatísticas.
o Histogramas.
· Índices:
o Índices B-Tree.
o Índices Bitmap.
· Teoria de divisão e conquista
o Partição de tabelas.
o Paralelismo.
· Interação entre os recursos de hardware.
o Buffer Cache.
o Espaço temporário em memória e discos.
· Transações.
o Propriedades ACID.
o Locks
o Níveis de Isolamento.
· Estratégias de acesso em tabelas e índices.
o Table Access Full (Full Table Scan).
o Index Range Scan.
o Index Full Scan.
o Index Fast Full Scan.
o Index Single Value.
· Estratégias de join entre tabelas.
o Nested Loops.
o Sort Merge Join.
o Hash Join.
Ao final de um breve ensaio decorrente dos conceitos mencionados serão demonstradas aplicações práticas em Oracle.
Nesta primeira parte desta série de artigos, abordaremos somente a interpretação de predicados, índices B-Tree, Bitmap e teoria de divisão e conquista.
...