Buscar

PBD - 07 - Otimização de consultas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 20 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 20 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 20 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Práticas em Práticas em 
Banco de Dados Banco de Dados 
Práticas em Práticas em 
Banco de Dados Banco de Dados 
Parte 7 – Otimização de Consultas
Professor Eduardo Xavier
Parte 7 – Otimização de Consultas
Professor Eduardo Xavier
Módulo Processador de Módulo Processador de 
ConsultasConsultas
• 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
Processamento de ConsultasProcessamento de Consultas
• Consulta SQL
• É adequada para uso humano, porém não é adequada para processamento pelo 
SGBD, porque:
• Não 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 diz respeito ao acesso a nível físico (arquivos do BD)
• O SGBD deve se preocupar com este processamento!
• Quem faz isso? O módulo Processador de Consultas
Etapas do ProcessamentoEtapas do Processamento
Tradução
Transformação
Definição do 
Plano de Execução
Consulta em linguagem de alto nível
(Exemplo: consulta SQL)
Representação interna
(árvore algébrica da consulta)
Representação transformada
(árvore otimizada algebricamente)
Plano de Execução
(árvore com indicação de estratégias de acesso)
Processador Run-timeGerador de Código Código de 
Execução
Resultado da Consulta
Etapas do ProcessamentoEtapas do Processamento
Tradução
Transformação
Definição do 
Plano de Execução
Consulta em linguagem de alto nível
(Exemplo: consulta SQL)
Representação interna
(árvore algébrica da consulta)
Representação transformada
(árvore otimizada algebricamente)
Plano de Execução
(árvore com indicação de estratégias de acesso)
Processador Run-timeGerador de Código Código de 
Execução
Resultado da Consulta
• 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
Processamento de ConsultasProcessamento de Consultas
• O que é uma árvore algébrica de consulta?
• É uma 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
Processamento de ConsultasProcessamento de Consultas
• Exemplo de árvore algébrica 
de 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
Etapas do ProcessamentoEtapas do Processamento
Tradução
Transformação
Definição do 
Plano de Execução
Consulta em linguagem de alto nível
(Exemplo: consulta SQL)
Representação interna
(árvore algébrica da consulta)
Representação transformada
(árvore otimizada algebricamente)
Plano de Execução
(árvore com indicação de estratégias de acesso)
Processador Run-timeGerador de Código Código de 
Execução
Resultado da Consulta
• Definição de uma árvore de consulta 
equivalente
• Chega ao mesmo resultado, porém 
processa de forma mais eficiente
• Este processo também é conhecido 
como Otimização Algébrica
Processamento de ConsultasProcessamento de Consultas
• Exemplo de árvore equivalente
Etapas do ProcessamentoEtapas do Processamento
Tradução
Transformação
Definição do 
Plano de Execução
Consulta em linguagem de alto nível
(Exemplo: consulta SQL)
Representação interna
(árvore algébrica da consulta)
Representação transformada
(árvore otimizada algebricamente)
Plano de Execução
(árvore com indicação de estratégias de acesso)
Processador Run-timeGerador de Código Código de 
Execução
Resultado da Consulta
• 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, ...)
Processamento de ConsultasProcessamento de Consultas
• Exemplo de Plano de Execução
Etapas do ProcessamentoEtapas do Processamento
Tradução
Transformação
Definição do 
Plano de Execução
Consulta em linguagem de alto nível
(Exemplo: consulta SQL)
Representação interna
(árvore algébrica da consulta)
Representação transformada
(árvore otimizada algebricamente)
Plano de Execução
(árvore com indicação de estratégias de acesso)
Processador Run-timeGerador de Código Código de 
Execução
Resultado da Consulta
FOCO:
OTIMIZADOR DE 
CONSULTA
Otimização HeurísticaOtimização Heurística
• “A arte ou a ciência do descobrimento”
• As regras de heurística para otimização de consulta utilizam 
expressões equivalentes para transformar a árvore inicial na 
árvore de consulta otimizada final.
• Vamos tomar como exemplo a transformação da seguinte 
consulta:
SELECT E.UNOME 
FROM EMPREGADO E, TRABALHA_EM T, PROJETO P
WHERE P.PNOME=“AQUARIUS” AND P.PNUMERO=T.NRP 
 AND T.ESSN=E.SSN AND E.DATANASC > “31-12-1957”;
Otimização HeurísticaOtimização Heurística
Transformação de Uma ConsultaTransformação de Uma Consulta
Otimização HeurísticaOtimização Heurística
Transformação de Uma ConsultaTransformação de Uma Consulta
Otimização HeurísticaOtimização Heurística
Transformação de Uma ConsultaTransformação de Uma Consulta
Otimização HeurísticaOtimização Heurística
Transformação de Uma ConsultaTransformação de Uma Consulta
Otimização HeurísticaOtimização Heurística
Transformação de Uma ConsultaTransformação de Uma Consulta
Otimização AlgébricaOtimização Algébrica
• Também acontece durante a etapa de Transformação
• Entrada: árvore de consulta inicial
• Saída: árvore de consulta otimizada
• Importante: pode acontecer das árvores de entrada e saída serem idênticas
• 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
Referências BibliográficasReferências Bibliográficas
ELSMARI, Ramez & NAVATHE, Shamkant B. Sistema de Banco de Dados. 
Rio de Janeiro: Editora Addison-Wesley. 4ª. edição, 2005, 744p.
	Slide 1
	Módulo Processador de Consultas
	Processamento de Consultas_clipboard0
	Etapas do Processamento_clipboard1
	Etapas do Processamento_clipboard2
	Processamento de Consultas_clipboard3
	Processamento de Consultas_clipboard4
	Etapas do Processamento_clipboard5
	Processamento de Consultas_clipboard6
	Etapas do Processamento_clipboard7
	Processamento de Consultas
	Etapas do Processamento
	Otimização Heurística
	Otimização Heurística Transformação de Uma Consulta_clipboard8
	Otimização Heurística Transformação de Uma Consulta_clipboard9
	Otimização Heurística Transformação de Uma Consulta_clipboard10
	Otimização Heurística Transformação de Uma Consulta
	Slide 18
	Otimização Algébrica
	Referencias Bibliográficas

Outros materiais