Algoritmos de Processamento e Otimiza o de Consultas Adriano Douglas Girardello Ana Paula Fredrich Tiago Alexandre Schulz Sippert 1 Introdu o Este trabalho ... – PowerPoint PPT presentation
1 Algoritmos de Processamento e Otimização de Consultas
Adriano Douglas Girardello
Ana Paula Fredrich
Tiago Alexandre Schulz Sippert
2 1 Introdução
Este trabalho aborda as técnicas utilizadas por um Sistema Gerenciador de Banco de Dados para processar, otimizar e executar consultas de alto nível
3 2 Passos do Processamento de uma Consulta
Análise Léxica
Análise Sintática
Validação das análises
Otimizador de Consulta
Gerador de código
Processador em tempo de execução
Pode ser gerado erro nesta etapa
4 2 Passos do Processamento de uma Consulta Quatro Estágios
Moldar a Consulta em Alguma Forma Interna
Converter para a Forma Canônica
Escolher Procedimentos Candidatos de Baixo Nível
Gerar Planos de Consultas e Escolher o mais
Econômico
5 2.1 Moldar a Consulta em Alguma Forma Interna
Conversão da consulta original para manipulação pela máquina, eliminando peculiaridades
Podem ser escolhidas
Árvore de Sintaxe Abstrata
Árvore de Consulta
Em geral é escolhida álgebra relacional
6 2.2 Converter para a Forma Canônica
Otimizações não referentes aos valores dos dados ou aos acessos físicos
Regras de transformação
Várias formas de escrita de uma consulta
Converter a representação original para uma mais eficiente
7 2.3 Escolher Procedimentos Candidatos de Baixo Nível
Como executar a consulta
Levar em consideração
Existência de índices, caminhos de acesso
Agrupamento físico, distribuição dos valores
Para cada operação de baixo nível existem vários procedimentos implementados
Cada procedimento tem a fórmula de custo
O otimizador escolhe qual procedimento implementar para cada operação de baixo nível
8 2.4 Gerar Planos de Consultas e Escolher o mais Econômico
Elaborado um conjunto de planos de consulta
Escolhido o melhor desses planos
Muitos planos candidatos
Tarefa de escolha demorada
Limite de planos gerados
Atribuição de peso de execução (soma dos custos individuais)
Avaliação dos resultados individuais
9 3 Traduzindo Consultas SQL para Álgebra Relacional
Linguagem SQL utilizada na maioria dos bancos comerciais
Cada consulta SQL é composta de blocos de consultas, que formam as unidades básicas
Unidade básica é transformada e otimizada
10 4 Algoritmo para Ordenação Externa
Ordenação é um dos algoritmos principais
Utilizado quando ocorre ORDER BY
Também utilizado em
JOIN
UNION
INTERSECTION
PROJECT
Adequada para registros grandes que não cabem totalmente em memória
11 4 Algoritmo para Ordenação Externa
Utiliza ordenação sort-merge
Ordena primeiramente sub-arquivos
Após faz a fusão nos sub-arquivos
Exige espaço de buffer na memória
12 5.1 Implementação da Operação SELECT
Várias opções de implementação
Podem ser divididos em
Métodos de busca para seleção simples
Métodos de busca para seleções complexas
O otimizador deve escolher o método apropriado para cada operação SELECT
Escolha do método com o menor custo estimado
13 5.1.1 Métodos de Busca para Seleções Simples
S1 Busca Linear Força Bruta
S2 Busca Binária
S3 Utilização de Índice Primário Chave Hash
S4 Utilização de Índice Primário para Recuperar Registros Múltiplos
S5 Utilização de um Índice Cluster para Recuperação de Múltiplos Registros
S6 Utilização de um Índice Secundário em uma Comparação de Igualdade
14 5.1.2 Métodos de Busca para Seleções Complexas
S7 Seleção Conjuntiva Utilizando um Índice Individual
S8 Seleção Conjuntiva Utilizando um Índice Composto
S9 Seleção Conjuntiva por Meio da Integração de Registros
15 5.1 Implementação da Operação SELECT
Se existir caminho de acesso direto
O método correspondente é utilizado
Se não existir caminho
É utilizado força bruta para escolha
Otimizar consultas de seleção conjuntiva (AND)
Otimizador sempre escolhe a consulta que retorna o menor número de registros
Seleção disjuntiva é muito mais difícil de otimizar (OR)
16 5.2 Implementação da Operação JOIN
Uma das operações que mais consome tempo de consulta
Possibilidade de duas ou mais vias (dois ou mais arquivos)
O número de maneiras para executar as junções múltiplas aumenta rapidamente
17 5.2.1 Métodos para a Implementação de Junções
J1 Junção de Laços Aninhados
J2 Junção de Laço Único
J3 Junção Sort-Merge
J4 Junção-Hash
18 5.2.2 Efeitos da Disponibilidade de Espaço de Buffer
Efeito importante sobre operações de junção
Tamanho do buffer
Ler para a memória a quantia máxima de blocos do arquivo
Reduz o número de acessos ao disco
Quando o buffer está cheio ele é escrito no disco
19 6 Combinação de Operações Usando Pipelines
Cada SQL é traduzida em uma expressão composta de várias operações
Cada operação gera arquivos temporários gerando sobrecarga excessiva
Utilizar códigos de execução correspondentes que realizem uma só consulta
Criar dinamicamente código de execução
Conforme resultado é produzido pode ser utilizado para as próximas operações
20 7 Utilização de Heurísticas na Otimização de Consultas
Regras heurísticas para muda representação interna
Otimizado a partir da análise sintática
Uma das principais heurísticas é utilizar SELECT e PROJECT antes de aplicar o JOIN
As operações SELECT e PROJECT reduzem o tamanho do arquivo de entrada para o JOIN
21 7.1 Notações de Árvores de Consulta e de Grafos de Consultas
Árvore de consulta
Estrutura de dados de árvore correspondente a uma expressão algébrica relacional
Representa relações de entrada como nós folhas e operações como nós internos
Execução dos nós internos até chegar à raiz
No final produz a relação de resultados da consulta
22 7.2 Conversões de Árvores de Consulta em Planos de Execução de Consultas
O plano de execução inclui informações sobre os métodos de acesso disponíveis para cada relação
Inclui algoritmos a serem utilizados na computação dos operadores
23 8 Utilização de Seletividade e Estimativa de Custo na Otimização de Consultas
Otimizador não deve depender somente de heurísticas
Estimar e comparar custos usando diferentes estratégias
Escolher a estratégia com menor custo
Estimativas precisas são necessárias
Comparação de maneira correta e realista
Limitar número de estratégias
24 8.1 Componentes do Custo para a Execução de uma Consulta
1. Custo de Acesso ao Armazenamento Secundário
2. Custo de Armazenamento
3. Custo de Computação
4. Custo de Uso de Memória
5. Custo de Comunicação
25 9 Otimização Semântica de Consultas
Utilização de restrições no banco de dados para tornar uma consulta mais eficiente
Pode ser utilizada em conjunto com as outras técnicas
Otimizador semântico verifica a existência de restrições.
Dependendo das restrições ele modifica a consulta ou nem a executa
Economiza tempo considerável de processamento
26 9 Otimização Semântica de Consultas
Número de restrições X Tempo de execução
Pesquisar muitas restrições para ver quais são aplicadas realmente
Bancos de Dados Futuros
Técnicas de otimização semântica podem ser incorporadas totalmente ao SGBD
27 10 Otimização Física
Pode ser dividido em dois discos
Permite acessos paralelos
Escolha de boa distribuição dos dados
Fatiamento de disco
Divide as tuplas de relações individuais entre os diversos discos
Ligação física ótima difere entre consultas
Administrador do BD escolhe melhor ligação
28 11 Estatísticas de Bancos de Dados
Utilizado na seleção de caminhos de acesso
Uso das chamadas estatísticas no catálogo
Listamos estatísticas em dois exemplos
DB2
Ingres
Tais estatísticas são usadas para entender como o banco é usado e como otimizá-lo
29 11.1 Estatísticas do BD2
Para cada tabela básica
Cardinalidade
Número de páginas ocupadas por esta tabela
Fração de "espaço de tabela" ocupado
Para cada coluna de cada tabela básica
Número de valores distintos nesta coluna
Segundo valor mais alto nesta coluna
Segundo valor mais baixo nesta coluna
Somente para colunas indexadas, os dez valores que ocorrem com maior freqüência nesta coluna
30 11.1 Estatísticas do BD2
Para cada índice
Uma indicação quanto a ser este um "índice de agrupamento" (isto é, um índice usado para agrupar dados logicamente relacionados em posições fisicamente contíguas no disco).
Se for o caso, a fração da tabela indexada ainda em seqüência de agrupamento em cluster.
Número de páginas por folhas neste índice.
Número de níveis neste índice.
31 11.2 Estatísticas do Ingres
Para cada tabela básica
Cardinalidade
Número de páginas primárias para esta tabela
Número de páginas de overflow para esta tabela
Para cada coluna de cada tabela básica
Número de valores distintos nesta coluna
Valores máximo, mínimo e médio para esta coluna
Valores efetivos nesta coluna e o número de vezes em que eles ocorrem.
32 Conclusões
Existem muitos métodos de otimização
Métodos de otimização são importantes
Reduzem tempo de execução
Reduzem custos de processamento
Melhoram o desempenho em geral
Existem muitos inibidores ao tentar realizar otimizações no processamento de consultas
Inibidores impedem que o otimizador faça uma consulta tão boa quanto poderia
PowerShow.com is a leading presentation sharing website. It has millions of presentations already uploaded and available with 1,000s more being uploaded by its users every day. Whatever your area of interest, here you’ll be able to find and view presentations you’ll love and possibly download. And, best of all, it is completely free and easy to use.
You might even have a presentation you’d like to share with others. If so, just upload it to PowerShow.com. We’ll convert it to an HTML5 slideshow that includes all the media types you’ve already added: audio, video, music, pictures, animations and transition effects. Then you can share it with your target audience as well as PowerShow.com’s millions of monthly visitors. And, again, it’s all free.
About the Developers
PowerShow.com is brought to you by CrystalGraphics, the award-winning developer and market-leading publisher of rich-media enhancement products for presentations. Our product offerings include millions of PowerPoint templates, diagrams, animated 3D characters and more.