UTFPR - Universidade Tecnológica Federal do Paraná · PDF file• Em geral,...
Transcript of UTFPR - Universidade Tecnológica Federal do Paraná · PDF file• Em geral,...
![Page 1: UTFPR - Universidade Tecnológica Federal do Paraná · PDF file• Em geral, as consultas SQL são decompostas em blocos de consultas, que formam as unidades básicas que podem ser](https://reader031.fdocumentos.com/reader031/viewer/2022030418/5aa41c307f8b9a7c1a8bb388/html5/thumbnails/1.jpg)
Processamento e otimização de consultas
Leyza Baldo Dorini04/Nov/2009
UTFPR - Universidade Tecnológica Federal do Paraná
![Page 2: UTFPR - Universidade Tecnológica Federal do Paraná · PDF file• Em geral, as consultas SQL são decompostas em blocos de consultas, que formam as unidades básicas que podem ser](https://reader031.fdocumentos.com/reader031/viewer/2022030418/5aa41c307f8b9a7c1a8bb388/html5/thumbnails/2.jpg)
Programação da aula Introdução: processamento e otimização
de consultas Etapas:
– Tradução– Transformação– Definição do plano de execução
![Page 3: UTFPR - Universidade Tecnológica Federal do Paraná · PDF file• Em geral, as consultas SQL são decompostas em blocos de consultas, que formam as unidades básicas que podem ser](https://reader031.fdocumentos.com/reader031/viewer/2022030418/5aa41c307f8b9a7c1a8bb388/html5/thumbnails/3.jpg)
Introdução
• Os SGBDs são responsáveis por uma série de tarefas que antes ficavam sob responsabilidade do programador. Dentre estas
– Processamento e otimização de consultas
– Gerenciamento de transações– Recuperação de falhas
![Page 4: UTFPR - Universidade Tecnológica Federal do Paraná · PDF file• Em geral, as consultas SQL são decompostas em blocos de consultas, que formam as unidades básicas que podem ser](https://reader031.fdocumentos.com/reader031/viewer/2022030418/5aa41c307f8b9a7c1a8bb388/html5/thumbnails/4.jpg)
![Page 5: UTFPR - Universidade Tecnológica Federal do Paraná · PDF file• Em geral, as consultas SQL são decompostas em blocos de consultas, que formam as unidades básicas que podem ser](https://reader031.fdocumentos.com/reader031/viewer/2022030418/5aa41c307f8b9a7c1a8bb388/html5/thumbnails/5.jpg)
Processamento de consultas
• Refere-se ao conjunto de atividades envolvidas na extração de dados de um BD. Tais atividades envolvem:
– Tradução de linguagens de alto nível em expressões que sejam mais adequadas para serem utilizadas no nível físico do sistema de arquivos
– Uma variedade de transformações para otimização de consultas
– Avaliação/execução de consultas
![Page 6: UTFPR - Universidade Tecnológica Federal do Paraná · PDF file• Em geral, as consultas SQL são decompostas em blocos de consultas, que formam as unidades básicas que podem ser](https://reader031.fdocumentos.com/reader031/viewer/2022030418/5aa41c307f8b9a7c1a8bb388/html5/thumbnails/6.jpg)
Processamento de consultas
![Page 7: UTFPR - Universidade Tecnológica Federal do Paraná · PDF file• Em geral, as consultas SQL são decompostas em blocos de consultas, que formam as unidades básicas que podem ser](https://reader031.fdocumentos.com/reader031/viewer/2022030418/5aa41c307f8b9a7c1a8bb388/html5/thumbnails/7.jpg)
Processamento de consultasTradução: é responsável pelas etapas de:1. análise léxica (identifica cláusulas SQL e nomes)2. análise sintática (validação da gramática-regras
sintáticas)3. análise semântica (nomes usados de acordo com a
estrutura do esquema)4. conversão para uma árvore algébrica da consulta
(recebe a consulta em linguagem de alto nível (consulta SQL, p. ex.), e retorna uma representação interna (árvore algébrica da consulta)
![Page 8: UTFPR - Universidade Tecnológica Federal do Paraná · PDF file• Em geral, as consultas SQL são decompostas em blocos de consultas, que formam as unidades básicas que podem ser](https://reader031.fdocumentos.com/reader031/viewer/2022030418/5aa41c307f8b9a7c1a8bb388/html5/thumbnails/8.jpg)
Processamento de consultas
• Transformação: é responsável pela geração da árvore algébrica otimizada a partir da árvore algébrica da consulta. A árvore algébrica otimizada é uma árvore de consulta equivalente (chega ao mesmo resultado, mas que processa de forma mais eficiente). Também chamada de fase de Otimização Algébrica.
![Page 9: UTFPR - Universidade Tecnológica Federal do Paraná · PDF file• Em geral, as consultas SQL são decompostas em blocos de consultas, que formam as unidades básicas que podem ser](https://reader031.fdocumentos.com/reader031/viewer/2022030418/5aa41c307f8b9a7c1a8bb388/html5/thumbnails/9.jpg)
Processamento de consultas
Definição do plano de execução: é a fase de análise de alternativas de definição de estratégias de acesso (escolha de algoritmos para implementação de operações). Leva em conta a existência de índices, estimativas sobre os dados (tamanho de tabelas, etc, ...). Gera uma árvore com indicação de estratégias de acesso.
![Page 10: UTFPR - Universidade Tecnológica Federal do Paraná · PDF file• Em geral, as consultas SQL são decompostas em blocos de consultas, que formam as unidades básicas que podem ser](https://reader031.fdocumentos.com/reader031/viewer/2022030418/5aa41c307f8b9a7c1a8bb388/html5/thumbnails/10.jpg)
Processamento de consultas
Gerador de código: recebe a árvore com indicação de estratégias de acesso (plano de execução) e gera código executável correspondente.
Processador run time: recebe o código executável, processa a consulta e retorna os resultados ao usuário.
![Page 11: UTFPR - Universidade Tecnológica Federal do Paraná · PDF file• Em geral, as consultas SQL são decompostas em blocos de consultas, que formam as unidades básicas que podem ser](https://reader031.fdocumentos.com/reader031/viewer/2022030418/5aa41c307f8b9a7c1a8bb388/html5/thumbnails/11.jpg)
Otimização de consultas
A otimização de consultas é feita basicamente em duas etapas:
• Otimização Algébrica (ou baseada em regras ou heurística)
• Plano de execução (ou baseada em custos)
![Page 12: UTFPR - Universidade Tecnológica Federal do Paraná · PDF file• Em geral, as consultas SQL são decompostas em blocos de consultas, que formam as unidades básicas que podem ser](https://reader031.fdocumentos.com/reader031/viewer/2022030418/5aa41c307f8b9a7c1a8bb388/html5/thumbnails/12.jpg)
Otimização de consultas: otimização algébrica• Otimização algébrica
– É responsável por gerar uma árvore algébrica otimizada, equivalente à árvore inicial da consulta, mas que processa mais rapidamente.
– Recebe como entrada a árvore da consulta inicial, e gera na saída uma árvore da consulta otimizada.
– Tem como base as regras de equivalência algébrica e o algoritmo de otimização algébrica
![Page 13: UTFPR - Universidade Tecnológica Federal do Paraná · PDF file• Em geral, as consultas SQL são decompostas em blocos de consultas, que formam as unidades básicas que podem ser](https://reader031.fdocumentos.com/reader031/viewer/2022030418/5aa41c307f8b9a7c1a8bb388/html5/thumbnails/13.jpg)
• Otimização algébrica (considerações):– As regras de equivalência algébrica
devem ser conhecidas pelo otimizador para que possam ser geradas transformações válidas;
– O algoritmo de otimização algébrica indica a ordem de aplicação das regras e de outros processamentos de otimização.
Otimização de consultas: otimização algébrica
![Page 14: UTFPR - Universidade Tecnológica Federal do Paraná · PDF file• Em geral, as consultas SQL são decompostas em blocos de consultas, que formam as unidades básicas que podem ser](https://reader031.fdocumentos.com/reader031/viewer/2022030418/5aa41c307f8b9a7c1a8bb388/html5/thumbnails/14.jpg)
Otimização de consultas: plano de execução• Tem como objetivo analisar alternativas de
processamento e escolher a melhor alternativa dentre as estimadas.
• Para avaliar o custo de uma alternativa, analisa estimativas sobre os dados (tamanho das tabelas, existência de índices, seletividade, ...) e o respectivo custo dos algoritmos de processamento de operações algébricas.
![Page 15: UTFPR - Universidade Tecnológica Federal do Paraná · PDF file• Em geral, as consultas SQL são decompostas em blocos de consultas, que formam as unidades básicas que podem ser](https://reader031.fdocumentos.com/reader031/viewer/2022030418/5aa41c307f8b9a7c1a8bb388/html5/thumbnails/15.jpg)
Processamento de consultas
• Em resumo:– Tradução– Transformação– Criação de plano (estratégia) de acesso
• A princípio, vamos ver de maneira global. Depois, veremos os detalhes envolvidos em cada etapa.
![Page 16: UTFPR - Universidade Tecnológica Federal do Paraná · PDF file• Em geral, as consultas SQL são decompostas em blocos de consultas, que formam as unidades básicas que podem ser](https://reader031.fdocumentos.com/reader031/viewer/2022030418/5aa41c307f8b9a7c1a8bb388/html5/thumbnails/16.jpg)
Processamento de consultas
![Page 17: UTFPR - Universidade Tecnológica Federal do Paraná · PDF file• Em geral, as consultas SQL são decompostas em blocos de consultas, que formam as unidades básicas que podem ser](https://reader031.fdocumentos.com/reader031/viewer/2022030418/5aa41c307f8b9a7c1a8bb388/html5/thumbnails/17.jpg)
PC: tradução
![Page 18: UTFPR - Universidade Tecnológica Federal do Paraná · PDF file• Em geral, as consultas SQL são decompostas em blocos de consultas, que formam as unidades básicas que podem ser](https://reader031.fdocumentos.com/reader031/viewer/2022030418/5aa41c307f8b9a7c1a8bb388/html5/thumbnails/18.jpg)
PC: tradução
• O primeiro passo consiste em traduzir a consulta expressada em uma linguagem de alto nível (ex: SQL) para uma forma mais adequada para ser utilizada como representação interna de uma consulta ao sistema.
![Page 19: UTFPR - Universidade Tecnológica Federal do Paraná · PDF file• Em geral, as consultas SQL são decompostas em blocos de consultas, que formam as unidades básicas que podem ser](https://reader031.fdocumentos.com/reader031/viewer/2022030418/5aa41c307f8b9a7c1a8bb388/html5/thumbnails/19.jpg)
PC: tradução
Consulta SQL– Adequada para uso humano;– Não adequada ao processamento pelo
SGBD:• descreve uma sequência de passos
(procedimento) a ser seguida;• Não descreve uma estratégia
eficiente para a implementação de cada passo no que tange o acesso em nível físico (arquivos do BD).
![Page 20: UTFPR - Universidade Tecnológica Federal do Paraná · PDF file• Em geral, as consultas SQL são decompostas em blocos de consultas, que formam as unidades básicas que podem ser](https://reader031.fdocumentos.com/reader031/viewer/2022030418/5aa41c307f8b9a7c1a8bb388/html5/thumbnails/20.jpg)
PC: tradução• Exemplo de representação adequada:
baseada na álgebra relacional, criando uma árvore (algébrica) da consulta. Ex:
SELECT m.crm, m.nome, a.andarFROM Medicos m, Ambulatorio aWHERE m.espec = “ortopedia” AND a.andar = 2 AND m.nro = a.nro• A árvore é a estrutura que representa o
mapeamento da consulta para a álgebra relacional
![Page 21: UTFPR - Universidade Tecnológica Federal do Paraná · PDF file• Em geral, as consultas SQL são decompostas em blocos de consultas, que formam as unidades básicas que podem ser](https://reader031.fdocumentos.com/reader031/viewer/2022030418/5aa41c307f8b9a7c1a8bb388/html5/thumbnails/21.jpg)
PC: tradução
• Os nós internos representam operações algébricas e os nós folha as relações do BD ou resultados intermediários
• Neste passo, o analisador sintático também verifica a sintaxe da consulta do usuários, se os nomes das relações existem, etc
![Page 22: UTFPR - Universidade Tecnológica Federal do Paraná · PDF file• Em geral, as consultas SQL são decompostas em blocos de consultas, que formam as unidades básicas que podem ser](https://reader031.fdocumentos.com/reader031/viewer/2022030418/5aa41c307f8b9a7c1a8bb388/html5/thumbnails/22.jpg)
PC: tradução (visão geral)
• De forma geral, uma consulta SQL é traduzida em uma expressão equivalente da álgebra relacional estendida – e é representada em uma estrutura de dados de árvore de consulta – que é então otimizada
• Em geral, as consultas SQL são decompostas em blocos de consultas, que formam as unidades básicas que podem ser traduzidas em operadores algébricos otimizados
![Page 23: UTFPR - Universidade Tecnológica Federal do Paraná · PDF file• Em geral, as consultas SQL são decompostas em blocos de consultas, que formam as unidades básicas que podem ser](https://reader031.fdocumentos.com/reader031/viewer/2022030418/5aa41c307f8b9a7c1a8bb388/html5/thumbnails/23.jpg)
PC: tradução• Um bloco de consulta contém uma única
expressão SELECT-FROM-WHERE, bem como cláusulas GROUP BY e HAVING, se elas forem partes do bloco
• Por isso, consultas consultas aninhadas dentro de uma consulta são identificadas por blocos separados (não-correlacionadas é + fácil)
• Como a SQL inclui operadores de agregacão (MAX, MIN...) eles também devem estar incluídos na álgebra relacional estendida
![Page 24: UTFPR - Universidade Tecnológica Federal do Paraná · PDF file• Em geral, as consultas SQL são decompostas em blocos de consultas, que formam as unidades básicas que podem ser](https://reader031.fdocumentos.com/reader031/viewer/2022030418/5aa41c307f8b9a7c1a8bb388/html5/thumbnails/24.jpg)
PC: tradução
• Considere a seguinte consulta SQL:
SELECT LNAME, FNAMEFROM EMPLOYEEWHERE SALARY > (SELECT (MAX) SALARY FROM EMPLOYEE WHERE DNO = 5);
![Page 25: UTFPR - Universidade Tecnológica Federal do Paraná · PDF file• Em geral, as consultas SQL são decompostas em blocos de consultas, que formam as unidades básicas que podem ser](https://reader031.fdocumentos.com/reader031/viewer/2022030418/5aa41c307f8b9a7c1a8bb388/html5/thumbnails/25.jpg)
PC: tradução
• Essa consulta inclui uma subconsulta aninhada, seria decomposta em 2 blocos.
– Bloco interno(SELECT (MAX) SALARYFROM EMPLOYEEWHERE DNO = 5)
– Bloco externoSELECT LNAME, FNAMEFROM EMPLOYEEWHERE SALARY > c
![Page 26: UTFPR - Universidade Tecnológica Federal do Paraná · PDF file• Em geral, as consultas SQL são decompostas em blocos de consultas, que formam as unidades básicas que podem ser](https://reader031.fdocumentos.com/reader031/viewer/2022030418/5aa41c307f8b9a7c1a8bb388/html5/thumbnails/26.jpg)
PC: traduçãoSELECT LNAME, FNAMEFROM EMPLOYEEWHERE SALARY > ( SELECT MAX (SALARY)
FROM EMPLOYEEWHERE DNO = 5);
SELECT MAX (SALARY)FROM EMPLOYEEWHERE DNO = 5
SELECT LNAME, FNAMEFROM EMPLOYEEWHERE SALARY > C
πLNAME, FNAME (σSALARY>C(EMPLOYEE)) ℱMAX SALARY (σDNO=5 (EMPLOYEE))
![Page 27: UTFPR - Universidade Tecnológica Federal do Paraná · PDF file• Em geral, as consultas SQL são decompostas em blocos de consultas, que formam as unidades básicas que podem ser](https://reader031.fdocumentos.com/reader031/viewer/2022030418/5aa41c307f8b9a7c1a8bb388/html5/thumbnails/27.jpg)
PC: transformação
![Page 28: UTFPR - Universidade Tecnológica Federal do Paraná · PDF file• Em geral, as consultas SQL são decompostas em blocos de consultas, que formam as unidades básicas que podem ser](https://reader031.fdocumentos.com/reader031/viewer/2022030418/5aa41c307f8b9a7c1a8bb388/html5/thumbnails/28.jpg)
PC: transformação• A base é composta por:
– 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 procedimentos de otimização
Transformação:– Entrada: árvore da consulta inicial;– Saída: árvore da consulta otimizada (pode
manter a mesma árvore).
![Page 29: UTFPR - Universidade Tecnológica Federal do Paraná · PDF file• Em geral, as consultas SQL são decompostas em blocos de consultas, que formam as unidades básicas que podem ser](https://reader031.fdocumentos.com/reader031/viewer/2022030418/5aa41c307f8b9a7c1a8bb388/html5/thumbnails/29.jpg)
Transformações de ExpressõesRelacionais• Uma consulta pode ser expressa de diversasmaneiras diferentes, com diferentes custos deavaliação.
– Equivalêcia de Expressões;– Regras de Equivalência;– Exemplos de Transformações;
![Page 30: UTFPR - Universidade Tecnológica Federal do Paraná · PDF file• Em geral, as consultas SQL são decompostas em blocos de consultas, que formam as unidades básicas que podem ser](https://reader031.fdocumentos.com/reader031/viewer/2022030418/5aa41c307f8b9a7c1a8bb388/html5/thumbnails/30.jpg)
Equivalência de expressões: exemplo• Considerando as tabelas a seguir e suasinstâncias, encontre os nomes de todos osclientes que possuem uma conta em qualqueragência localizada no Brooklyn.
Para resolver esta expressão, seguindo a forma como ela está escrita, é necessário criar uma relação intermediária grande
![Page 31: UTFPR - Universidade Tecnológica Federal do Paraná · PDF file• Em geral, as consultas SQL são decompostas em blocos de consultas, que formam as unidades básicas que podem ser](https://reader031.fdocumentos.com/reader031/viewer/2022030418/5aa41c307f8b9a7c1a8bb388/html5/thumbnails/31.jpg)
Equivalência de expressões
![Page 32: UTFPR - Universidade Tecnológica Federal do Paraná · PDF file• Em geral, as consultas SQL são decompostas em blocos de consultas, que formam as unidades básicas que podem ser](https://reader031.fdocumentos.com/reader031/viewer/2022030418/5aa41c307f8b9a7c1a8bb388/html5/thumbnails/32.jpg)
Equivalência de expressões
![Page 33: UTFPR - Universidade Tecnológica Federal do Paraná · PDF file• Em geral, as consultas SQL são decompostas em blocos de consultas, que formam as unidades básicas que podem ser](https://reader031.fdocumentos.com/reader031/viewer/2022030418/5aa41c307f8b9a7c1a8bb388/html5/thumbnails/33.jpg)
Equivalência de expressões
• Entretanto, somente as tuplas que pertencem a agências localizadas no “Brooklyn” são interessantes.
• Reescrevendo a consulta, consegue-se eliminar a necessidade de considerar as tuplas que não têm cidade_agência = “Brooklyn”, reduzindo o tamanho do resultado intermediário:
![Page 34: UTFPR - Universidade Tecnológica Federal do Paraná · PDF file• Em geral, as consultas SQL são decompostas em blocos de consultas, que formam as unidades básicas que podem ser](https://reader031.fdocumentos.com/reader031/viewer/2022030418/5aa41c307f8b9a7c1a8bb388/html5/thumbnails/34.jpg)
Equivalência de expressões
![Page 35: UTFPR - Universidade Tecnológica Federal do Paraná · PDF file• Em geral, as consultas SQL são decompostas em blocos de consultas, que formam as unidades básicas que podem ser](https://reader031.fdocumentos.com/reader031/viewer/2022030418/5aa41c307f8b9a7c1a8bb388/html5/thumbnails/35.jpg)
Equivalência de expressões
![Page 36: UTFPR - Universidade Tecnológica Federal do Paraná · PDF file• Em geral, as consultas SQL são decompostas em blocos de consultas, que formam as unidades básicas que podem ser](https://reader031.fdocumentos.com/reader031/viewer/2022030418/5aa41c307f8b9a7c1a8bb388/html5/thumbnails/36.jpg)
Equivalência de expressões• Dada uma expressão de álgebra relacional, a
função do otimizador de consulta propor um plano de avaliação da consulta que gere o mesmo resultado da expressão fornecida e que seja uma maneira menos onerosa de gerar o resultado (ou que, pelo menos, não seja muito mais cara que a maneira mais barata).
• Para isso o otimizador precisa gerar planos alternativosque produzam o mesmo resultado da expressão dada e escolher o menos caro.
![Page 37: UTFPR - Universidade Tecnológica Federal do Paraná · PDF file• Em geral, as consultas SQL são decompostas em blocos de consultas, que formam as unidades básicas que podem ser](https://reader031.fdocumentos.com/reader031/viewer/2022030418/5aa41c307f8b9a7c1a8bb388/html5/thumbnails/37.jpg)
Regras de Equivalência Algébrica• Uma regra de equivalência diz que
expressões de duas formas são equivalentes se podemos transformar uma na outra preservando a equivalência.
• Preservar a equivalência significa que as relações geradas pelas duas expressões têm o mesmo conjunto de atributos e contêm o mesmo conjunto de tuplas, embora seus atributos possam estar ordenados de forma diferente.
![Page 38: UTFPR - Universidade Tecnológica Federal do Paraná · PDF file• Em geral, as consultas SQL são decompostas em blocos de consultas, que formam as unidades básicas que podem ser](https://reader031.fdocumentos.com/reader031/viewer/2022030418/5aa41c307f8b9a7c1a8bb388/html5/thumbnails/38.jpg)
Regras de Equivalência Algébrica• As regras de equivalência são usadas
pelo otimizador para transformar expressões em outras logicamente equivalentes.
• Assuma que:– θ: denota predicados;– L: denotas listas de atributos;– E: denota expressões da álgebra
relacional.
![Page 39: UTFPR - Universidade Tecnológica Federal do Paraná · PDF file• Em geral, as consultas SQL são decompostas em blocos de consultas, que formam as unidades básicas que podem ser](https://reader031.fdocumentos.com/reader031/viewer/2022030418/5aa41c307f8b9a7c1a8bb388/html5/thumbnails/39.jpg)
![Page 40: UTFPR - Universidade Tecnológica Federal do Paraná · PDF file• Em geral, as consultas SQL são decompostas em blocos de consultas, que formam as unidades básicas que podem ser](https://reader031.fdocumentos.com/reader031/viewer/2022030418/5aa41c307f8b9a7c1a8bb388/html5/thumbnails/40.jpg)
![Page 41: UTFPR - Universidade Tecnológica Federal do Paraná · PDF file• Em geral, as consultas SQL são decompostas em blocos de consultas, que formam as unidades básicas que podem ser](https://reader031.fdocumentos.com/reader031/viewer/2022030418/5aa41c307f8b9a7c1a8bb388/html5/thumbnails/41.jpg)
![Page 42: UTFPR - Universidade Tecnológica Federal do Paraná · PDF file• Em geral, as consultas SQL são decompostas em blocos de consultas, que formam as unidades básicas que podem ser](https://reader031.fdocumentos.com/reader031/viewer/2022030418/5aa41c307f8b9a7c1a8bb388/html5/thumbnails/42.jpg)
![Page 43: UTFPR - Universidade Tecnológica Federal do Paraná · PDF file• Em geral, as consultas SQL são decompostas em blocos de consultas, que formam as unidades básicas que podem ser](https://reader031.fdocumentos.com/reader031/viewer/2022030418/5aa41c307f8b9a7c1a8bb388/html5/thumbnails/43.jpg)
![Page 44: UTFPR - Universidade Tecnológica Federal do Paraná · PDF file• Em geral, as consultas SQL são decompostas em blocos de consultas, que formam as unidades básicas que podem ser](https://reader031.fdocumentos.com/reader031/viewer/2022030418/5aa41c307f8b9a7c1a8bb388/html5/thumbnails/44.jpg)
![Page 45: UTFPR - Universidade Tecnológica Federal do Paraná · PDF file• Em geral, as consultas SQL são decompostas em blocos de consultas, que formam as unidades básicas que podem ser](https://reader031.fdocumentos.com/reader031/viewer/2022030418/5aa41c307f8b9a7c1a8bb388/html5/thumbnails/45.jpg)
Exemplos de transformações
![Page 46: UTFPR - Universidade Tecnológica Federal do Paraná · PDF file• Em geral, as consultas SQL são decompostas em blocos de consultas, que formam as unidades básicas que podem ser](https://reader031.fdocumentos.com/reader031/viewer/2022030418/5aa41c307f8b9a7c1a8bb388/html5/thumbnails/46.jpg)
Otimização Heurística
• Uma árvore de consulta pode ser transformada passo a passo em outra árvore de consulta mais eficiente.
• Entretanto é preciso assegurar que os passos de transformação sempre levem a uma árvore de consulta equivalente.
d
• Determinadas regras de transformação preservam essa equivalência.
![Page 47: UTFPR - Universidade Tecnológica Federal do Paraná · PDF file• Em geral, as consultas SQL são decompostas em blocos de consultas, que formam as unidades básicas que podem ser](https://reader031.fdocumentos.com/reader031/viewer/2022030418/5aa41c307f8b9a7c1a8bb388/html5/thumbnails/47.jpg)
![Page 48: UTFPR - Universidade Tecnológica Federal do Paraná · PDF file• Em geral, as consultas SQL são decompostas em blocos de consultas, que formam as unidades básicas que podem ser](https://reader031.fdocumentos.com/reader031/viewer/2022030418/5aa41c307f8b9a7c1a8bb388/html5/thumbnails/48.jpg)
![Page 49: UTFPR - Universidade Tecnológica Federal do Paraná · PDF file• Em geral, as consultas SQL são decompostas em blocos de consultas, que formam as unidades básicas que podem ser](https://reader031.fdocumentos.com/reader031/viewer/2022030418/5aa41c307f8b9a7c1a8bb388/html5/thumbnails/49.jpg)
![Page 50: UTFPR - Universidade Tecnológica Federal do Paraná · PDF file• Em geral, as consultas SQL são decompostas em blocos de consultas, que formam as unidades básicas que podem ser](https://reader031.fdocumentos.com/reader031/viewer/2022030418/5aa41c307f8b9a7c1a8bb388/html5/thumbnails/50.jpg)
![Page 51: UTFPR - Universidade Tecnológica Federal do Paraná · PDF file• Em geral, as consultas SQL são decompostas em blocos de consultas, que formam as unidades básicas que podem ser](https://reader031.fdocumentos.com/reader031/viewer/2022030418/5aa41c307f8b9a7c1a8bb388/html5/thumbnails/51.jpg)
![Page 52: UTFPR - Universidade Tecnológica Federal do Paraná · PDF file• Em geral, as consultas SQL são decompostas em blocos de consultas, que formam as unidades básicas que podem ser](https://reader031.fdocumentos.com/reader031/viewer/2022030418/5aa41c307f8b9a7c1a8bb388/html5/thumbnails/52.jpg)
![Page 53: UTFPR - Universidade Tecnológica Federal do Paraná · PDF file• Em geral, as consultas SQL são decompostas em blocos de consultas, que formam as unidades básicas que podem ser](https://reader031.fdocumentos.com/reader031/viewer/2022030418/5aa41c307f8b9a7c1a8bb388/html5/thumbnails/53.jpg)
![Page 54: UTFPR - Universidade Tecnológica Federal do Paraná · PDF file• Em geral, as consultas SQL são decompostas em blocos de consultas, que formam as unidades básicas que podem ser](https://reader031.fdocumentos.com/reader031/viewer/2022030418/5aa41c307f8b9a7c1a8bb388/html5/thumbnails/54.jpg)
Resumindo...
• Determinar a árvore algébrica inicial correspondente a esta consulta
• Fazer seleções o mais cedo possível• Converter produtos cartesianos
seguidos de seleção em junção• Fazer projeções o mais cedo possível
![Page 55: UTFPR - Universidade Tecnológica Federal do Paraná · PDF file• Em geral, as consultas SQL são decompostas em blocos de consultas, que formam as unidades básicas que podem ser](https://reader031.fdocumentos.com/reader031/viewer/2022030418/5aa41c307f8b9a7c1a8bb388/html5/thumbnails/55.jpg)
PC: definição do plano de acesso (execução)
![Page 56: UTFPR - Universidade Tecnológica Federal do Paraná · PDF file• Em geral, as consultas SQL são decompostas em blocos de consultas, que formam as unidades básicas que podem ser](https://reader031.fdocumentos.com/reader031/viewer/2022030418/5aa41c307f8b9a7c1a8bb388/html5/thumbnails/56.jpg)
PC: definição do plano de acesso (execução)• 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, por exemplo)
• Considera algoritmos predefinidos para implementação de passos do processamento e estimativas sobre os dados
![Page 57: UTFPR - Universidade Tecnológica Federal do Paraná · PDF file• Em geral, as consultas SQL são decompostas em blocos de consultas, que formam as unidades básicas que podem ser](https://reader031.fdocumentos.com/reader031/viewer/2022030418/5aa41c307f8b9a7c1a8bb388/html5/thumbnails/57.jpg)
A Escolha de Planos de Avaliação• Em outras palavras...
– A geração de expressões é apenas parte do processo de otimização de consultas.
– Um plano de avaliação define exatamente qual algoritmo será usado para cada operação e como a execução das operações é coordenada.
![Page 58: UTFPR - Universidade Tecnológica Federal do Paraná · PDF file• Em geral, as consultas SQL são decompostas em blocos de consultas, que formam as unidades básicas que podem ser](https://reader031.fdocumentos.com/reader031/viewer/2022030418/5aa41c307f8b9a7c1a8bb388/html5/thumbnails/58.jpg)
A Escolha de Planos de Avaliação
![Page 59: UTFPR - Universidade Tecnológica Federal do Paraná · PDF file• Em geral, as consultas SQL são decompostas em blocos de consultas, que formam as unidades básicas que podem ser](https://reader031.fdocumentos.com/reader031/viewer/2022030418/5aa41c307f8b9a7c1a8bb388/html5/thumbnails/59.jpg)
Próxima aula...
• Veremos otimização baseada em custos com mais detalhes!!
![Page 60: UTFPR - Universidade Tecnológica Federal do Paraná · PDF file• Em geral, as consultas SQL são decompostas em blocos de consultas, que formam as unidades básicas que podem ser](https://reader031.fdocumentos.com/reader031/viewer/2022030418/5aa41c307f8b9a7c1a8bb388/html5/thumbnails/60.jpg)
Otimização baseada em custo
• O otimizador baseado no custo gera uma faixa de planos de avaliação a partir de uma determinada consulta usando as regras de equivalência e escolhe aquele de menor custo.
• Para uma consulta complexa, o número de planos diferentes por ser muito grande.
![Page 61: UTFPR - Universidade Tecnológica Federal do Paraná · PDF file• Em geral, as consultas SQL são decompostas em blocos de consultas, que formam as unidades básicas que podem ser](https://reader031.fdocumentos.com/reader031/viewer/2022030418/5aa41c307f8b9a7c1a8bb388/html5/thumbnails/61.jpg)
PC: otimizador de consultas• A transformação e a definição do plano
de execução compõem o otimizador de consultas
![Page 62: UTFPR - Universidade Tecnológica Federal do Paraná · PDF file• Em geral, as consultas SQL são decompostas em blocos de consultas, que formam as unidades básicas que podem ser](https://reader031.fdocumentos.com/reader031/viewer/2022030418/5aa41c307f8b9a7c1a8bb388/html5/thumbnails/62.jpg)
Otimização de consultas
• Em resumo, a otimização de consultas é o processo de selecionar o plano de execução mais eficiente enttre as muitas estratégias possíveis
• Isso evita que o usuário tenha que fornecer a melhor consulta
• Em resumo: otimização de consultas é o processo de melhoria da estratégia de processamento
![Page 63: UTFPR - Universidade Tecnológica Federal do Paraná · PDF file• Em geral, as consultas SQL são decompostas em blocos de consultas, que formam as unidades básicas que podem ser](https://reader031.fdocumentos.com/reader031/viewer/2022030418/5aa41c307f8b9a7c1a8bb388/html5/thumbnails/63.jpg)
• Exercício!!!
![Page 64: UTFPR - Universidade Tecnológica Federal do Paraná · PDF file• Em geral, as consultas SQL são decompostas em blocos de consultas, que formam as unidades básicas que podem ser](https://reader031.fdocumentos.com/reader031/viewer/2022030418/5aa41c307f8b9a7c1a8bb388/html5/thumbnails/64.jpg)