Atenção: esse artigo tem uma palestra complementar. Clique e assista!

Artigo no estilo: Curso

De que se trata o artigo

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).

...
Quer ler esse conteúdo completo? Tenha acesso completo