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, e como conseqüência, atingir um melhor desempenho.
Neste artigo daremos continuidade à nossa discussão sobre o Explain Plan no SGBD Oracle. No artigo publicado na SQL Magazine 79, abordamos a interpretação de predicados, índices B-Tree, Bitmap e teoria de divisão e conquista, os quais servirão de base para os seguintes tópicos desta edição:
• 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.
Interação entre recursos de hardware
Em linhas gerais, o SGBD, para atingir o desempenho ótimo, manipula eficientemente CPU (Central Processing Unit), memória (física e virtual) e discos.
A memória virtual é uma técnica em que o sistema operacional oferece a impressão de extensão da memória de física aos programas recorrendo a um espaço auxiliar em disco (swap).
Programas são divididos em páginas, que são alocadas dentro da memória virtual, entretanto, é manipulável somente quanto se apresenta na memória física. A execução de vários programas eventualmente provoca uma exaustão da memória física e páginas são transferidas para o espaço auxiliar (page out). Essa transferência da página deve ser registrada na page table para que o programa seja mais tarde reconstituível. Durante a execução de um programa que solicita uma página não encontrada em memória física, contabiliza-se um page fault que exige a transferência da página do espaço auxiliar (page in).
Os conceitos de swapping e paging (paginação) inerentes a essa técnica são totalmente distintos. O swapping é referente ao conjunto de etapas envolvidas na transferência integral de todas as páginas do programa entre a memória física e o disco. O paging é referente ao conjunto de etapas envolvidas na transferência de uma página do programa entre a memória física e o disco. O paging deve ser monitorado e a proporção entre a memória virtual e memória física dimensionados para o desempenho ótimo.
Em um apanhado extremamente simplificado, um processo requisita tempo de CPU para processamento, também recorre à memória para manipulação ágil de dados (no entanto, temporária e de tamanho limitado), por fim armazena permanentemente em disco, o qual é provido de um espaço mais amplo (contudo, a uma taxa mais baixa de transferência).
...