Algoritmos de Processamento e Otimiza - PowerPoint PPT Presentation

About This Presentation
Title:

Algoritmos de Processamento e Otimiza

Description:

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

Number of Views:72
Avg rating:3.0/5.0
Slides: 33
Provided by: infUnioe
Category:

less

Transcript and Presenter's Notes

Title: Algoritmos de Processamento e Otimiza


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
Write a Comment
User Comments (0)
About PowerShow.com