A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Sumário 1 SQL Embutida 2 Processamento de Consultas

Apresentações semelhantes


Apresentação em tema: "Sumário 1 SQL Embutida 2 Processamento de Consultas"— Transcrição da apresentação:

1 Sumário 1 SQL Embutida 2 Processamento de Consultas
3 Introdução a Transações 4 Recuperação de Falhas 5 Controle de Concorrência 6 Banco de Dados Distribuído

2 Processamento de Consultas
Extração de informações do BD Consulta SQL adequada para uso humano não adequada para processamento pelo SGBD não descreve uma seqüência de passos (procedimento) a ser seguida não descreve uma estratégia eficiente para a implementação de cada passo no que diz respeito ao acesso a nível físico (arquivos do BD) O SGBD deve se preocupar com este processamento! módulo Processador de Consultas

3 Módulo Processador de Consultas
Objetivo otimização do processamento de uma consulta tradução, transformação e geração de uma estratégia (plano) de execução estratégia de acesso leva em conta algoritmos predefinidos para implementação de passos do processamento e estimativas sobre os dados Vale a pena todo este esforço? Sim! Tx = tempo para definir e executar uma estratégia otimizada de processamento Ty = tempo para executar uma estratégia não-otimizada de processamento Quase sempre: Tx  Ty

4 Etapas de Processamento
Consulta em linguagem de alto nível (consulta SQL, p. ex.) Tradução Representação interna (árvore algébrica da consulta) Transformação Representação transformada (árvore otimizada algebricamente) Definição do Plano de Execução Plano de Execução (árvore com indicação de estratégias de acesso) Gerador de Código Código de Execução Resultado da Consulta Processador Run-time

5 Etapas de Processamento
Consulta em linguagem de alto nível (consulta SQL, p. ex.) Tradução Representação interna (árvore algébrica da consulta) Transformação Representação transformada (árvore otimizada algebricamente) Definição do Plano de Execução análise léxica - cláusulas SQL e nomes válidos análise sintática - validação da gramática análise semântica - nomes usados de acordo com a estrutura do esquema conversão para uma árvore algébrica da consulta Plano de Execução (árvore com indicação de estratégias de acesso) Gerador de Código Código de Execução Resultado da Consulta Processador Run-time

6 Árvore (Algébrica) da Consulta
Estrutura que representa o mapeamento da consulta para a álgebra relacional uma expressão da álgebra relacional “estendida” pode indicar alguma computação (função agregação, atributo calculado, ...) nodos folha: relações (do BD ou resultados intermediários) nodos internos: operações da álgebra Processamento da árvore nodos internos são executados quando seus operandos estão disponíveis são substituídos pela relação resultante a execução termina quando o nodo raiz é executado

7 Exemplo de Árvore da Consulta
select m.CRM, m.nome, a.número, a.andar from Médicos m, Ambulatórios a where m.especialidade = ‘ortopedia’ and a.andar = 2 and m.número = a.número  m.CRM, m.nome, a.número, a.andar  m.especialidade = ‘ortopedia’  a.andar = 2  m.número = a.número X Médicos Ambulatórios

8 Etapas de Processamento
Consulta em linguagem de alto nível (consulta SQL, p. ex.) Tradução Representação interna (árvore algébrica da consulta) Transformação Representação transformada (árvore otimizada algebricamente) Definição do Plano de Execução definição de uma árvore de consulta equivalente chega ao mesmo resultado processa de forma mais eficiente também chamada de Otimização Algébrica Plano de Execução (árvore com indicação de estratégias de acesso) Gerador de Código Código de Execução Resultado da Consulta Processador Run-time

9 Exemplo de Árvore Equivalente
 m.CRM, m.nome, a.número, a.andar  m.CRM, m.nome, a.número, a.andar  m.número = a.número  m.especialidade = ‘ortopedia’  a.andar = 2  m.número = a.número X X  m.especialidade = ‘ortopedia’ a.andar = 2 Médicos Ambulatórios Médicos Ambulatórios

10 Etapas de Processamento
Consulta em linguagem de alto nível (consulta SQL, p. ex.) análise de alternativas de definição de estratégias de acesso escolha de algoritmos para implementação de operações existência de índices estimativas sobre os dados (tamanho de tabelas, seletividade, ...) Tradução Representação interna (árvore algébrica da consulta) Transformação Representação transformada (árvore otimizada algebricamente) Definição do Plano de Execução Plano de Execução (árvore com indicação de estratégias de acesso) Gerador de Código Código de Execução Resultado da Consulta Processador Run-time

11 Exemplo de Plano de Execução
 m.CRM, m.nome, a.número, a.andar  m.número = a.número (processamento pipeline) X (loop-aninhado)  m.especialidade = ‘ortopedia’ a.andar = 2 (pesquisa linear) (pesquisa indexada) Médicos Ambulatórios

12 Etapas de Processamento
Consulta em linguagem de alto nível (consulta SQL, p. ex.) Tradução Representação interna (árvore algébrica da consulta) Transformação Representação transformada (árvore otimizada algebricamente) Definição do Plano de Execução Plano de Execução (árvore com indicação de estratégias de acesso) Gerador de Código Código de Execução Resultado da Consulta Processador Run-time

13 Etapas de Processamento
Consulta em linguagem de alto nível (consulta SQL, p. ex.) Tradução Representação interna (árvore algébrica da consulta) Transformação Representação transformada (árvore otimizada algebricamente) Definição do Plano de Execução FOCO: OTIMIZADOR DE CONSULTA Plano de Execução (árvore com indicação de estratégias de acesso) Gerador de Código Código de Execução Resultado da Consulta Processador Run-time

14 Otimização Algébrica Objetivo do passo de Transformação Base
entrada: árvore da consulta inicial saída: árvore da consulta otimizada (pode manter a mesma árvore) Base regras de equivalência algébrica devem ser conhecidas pelo otimizador para que possam ser geradas transformações válidas algoritmo de otimização algébrica indica a ordem de aplicação das regras e de outros processamentos de otimização

15 Regras de Equivalência
1. Cascata de Seleções c1  c2  ... cn (R)  c1 (c2 (... (cn (R)))) 2. Comutatividade de Seleções c1 (c2 (R))  c2 (c1 (R)) 3. Cascata de Projeções listaAtributos1 (R)  listaAtributos1 (listaAtributos2 (...(listaAtributosN (R)))) - válido em que situação?

16 Regras de Equivalência
4. Comutatividade de Seleções e Projeções a1, a2 , ..., an (c (R))  c (a1, a2 , ..., an (R)) - válido em que situação? 5. Comutatividade de Operações Produtórias (“X”) R “X” S  S “X” R por “X” entenda-se: X ou X  ou a ordem dos atributos e tuplas do resultado não é relevante

17 Regras de Equivalência
6. Comutatividade de Seleções e Operações Produtórias (a) c (R “X” S)  (c (R)) “X” S ou (b) c (R “X” S)  (c1 (R)) “X” (c2 (S)) - válidas em que situações? 7. Comutatividade de Projeções e Operações Produtórias (a) listaAtributos1 (R “X” S)  (listaAtributos2 (R)) “X” S ou (b) listaAtributos1 (R “X” S)  (listaAtributos2 (R)) “X” (listaAtributos3 (S))ou (c) listaAtributos1 (R “X” S)  listaAtributos1 ((listaAtributos2 (R)) “X” (listaAtributos3 (S))) - válidas em que situações?

18 Regras de Equivalência
8. Comutatividade de Operações de Conjunto R  S  S  R e R  S  S  R por quê a “” não é comutativa? 9. Associatividade de Operações Produtórias e de Conjunto (“X”) (R “X” S) “X” T  R “X” (S “X” T) por “X” entenda-se: X ou X  ou ou  ou  por quê a “” não é associativa?

19 Regras de Equivalência
10. Comutatividade de Seleção e Operações de Conjunto (“”) c (R “” S)  (c (R)) “” (c (S)) por “” entenda-se:  ou  ou  11. Comutatividade de Projeção e União listaAtributos (R  S)  (listaAtributos (R))  (listaAtributos (S)) por quê a “” e a “” não são comutativas?

20 Regras de Equivalência
12. Fusão de Seleções e Operações Produtórias (a) c (R X S)  R X  = c S ou (b) c (R X S)  R S ou (c) R X  = c S  R S c c - válidas em quais situações?

21 Algoritmo de Otimização Algébrica
Algoritmo de alto (altíssimo!) nível Composto de 6 grandes passos Passo 1 aplicar a regra 1 desmembrar operações de seleção maior flexibilidade para mover seleções Passo 2 aplicar as regras 2, 4, 6 e 10 objetivo mover seleções para níveis inferiores da árvore o máximo possível

22 Algoritmo de Otimização Algébrica
Passo 3 aplicar as regras 5 e 9 mudar de posição sub-árvores envolvidas em operações produtórias objetivos combinar prioritariamente sub-árvores com menor número de dados investigar sub-árvores com seleções mais restritivas evitar produtos cartesianos combinações sem atributos de junção como saber quais as seleções mais restritivas? análise do grau de seletividade de um predicado estatística geralmente mantida no DD

23 Grau de Seletividade (GS)
Definido pela seguinte razão GS = tp(R) / |R|, onde tp(R) é o número de tuplas que satisfazem o predicado em uma relação R e |R| é o número de tuplas em R (GS  [0,1]) GS pequeno ( 0)  seleção mais restritiva Um atributo chave ac possui baixo GS em predicados de igualdade GS(ac) = 1 / |R| Geralmente mantém-se uma estimativa de distribuição uniforme de valores de atributos GS(ai) = (|R| / V(ai)) / |R| = 1 / V(ai), onde V(ai) é o número de valores distintos de ai

24 Algoritmo de Otimização Algébrica
Passo 4 aplicar a regra 12 otimizar operações produtórias Passo 5 aplicar as regras 3, 4, 7 e 11 desmembrar e mover projeções para níveis inferiores da árvore, tanto quanto possível, definindo novas projeções conforme se faça necessário Passo 6 identificar sub-árvores que representem grupos de operações que possam ser executadas por um único algoritmo defina-os uma única vez (uma única sub-árvore) na “árvore”

25 Passo 6 - Exemplo  r1, s1, s2, t1, t2  r1, s1, s2, t1, t2 X X
 r1 = x s1 > y s1 > y  t2 < z  r1 = x s1 > y  t2 < z R S S T R S T

26 Exercício – Operadores Lógicos
Considerando que p1, p2 e p3 são predicados de seleção, explique por quê as leis abaixo são úteis no algoritmo de otimização algébrica Leis de De Morgan (a)  (p1  p2)  ( p1)  ( p2) (b)  (p1  p2)  ( p1)  ( p2) Leis da Distributividade (a) p1  (p2  p3)  (p1  p2)  (p1  p3) (b) p1  (p2  p3)  (p1  p2)  (p1  p3)


Carregar ppt "Sumário 1 SQL Embutida 2 Processamento de Consultas"

Apresentações semelhantes


Anúncios Google