Otimização de Consultas em SQL Planos de Execução

Slides:



Advertisements
Apresentações semelhantes
Object Query Language - OQL
Advertisements

AULA 5 PGC Sistemas de Banco de Dados Profa. Sandra de Amo
Otimização de Consultas em SQL Estimativas de Custos
Álgebra Relacional Marcelo Mendes Manaus
Banco de Dados Prof. Antonio.
SQL Avançado Continuação
SQL Structured Query Language (continuação)
Prof.: Bruno Rafael de Oliveira Rodrigues
SISTEMAS DE INFORMAÇÃO Sistemas de Bancos de Dados 2º Semestre – 2010 Pedro Antonio Galvão Junior Fone: 9531 – 7555.
Otimização de Consultas em SQL Parte II - Planos Alternativos -  Estimativa de Custos dos Planos de Execução AULA 19 Profa. Sandra de Amo Programa de.
REVISÃO PARA 3a PROVA Gerência de Banco de Dados
Otimização de Consultas em SQL Parte I - Planos de Execução e Equivalências de Expressões da Álgebra Relacional AULA 19 Profa. Sandra de Amo Programa.
Algoritmos para Projeção eliminando Duplicatas
Gerenciamento de Banco de Dados
SQL Exercícios de Revisão
Algoritmos de Junção – BNL e IndexNL AULA 16 Profa. Sandra de Amo GBC053 – BCC
AULA 27 Profa. Sandra de Amo GBC053 – BCC
Algoritmos de Junção – Sort-Merge Join Hash Join
SQL – Consultas Aninhadas
Algoritmos para Seleção com Condições Gerais AULA 17 Profa. Sandra de Amo GBC053 – BCC
Algoritmos para Seleção e Projeção
SQL – Comandos de Agregação
Algoritmos para Operações de Conjuntos AULA 19 Profa. Sandra de Amo GBC053 – BCC
AULA 23 Profa. Sandra de Amo GBC053 – BCC
SQL – Consultas Aninhadas e Agregação Profa. Sandra de Amo Capitulo 5 – Livro Texto Database Management Systems Ramakrishnan - Gehrke.
SQL Exercícios de Revisão Profa. Sandra de Amo Programa de Pós-graduação em Ciência da Computação – UFU
Algebra relacional nomeada e não-nomeada
Algoritmos para Projeção e Operações de Conjuntos AULA 22 Profa. Sandra de Amo GBC053 – BCC
Otimização de Consultas em SQL Planos de Execução e Equivalências de Expressões da Álgebra Relacional AULA 24 Profa. Sandra de Amo GBC053 – BCC
Subconsultas ou Consultas Aninhadas
SQL – Consultas Básicas
SQL – Noções Gerais Por Márcia Jacyntha N. Rodrigues Lucena
SQL – DML Consultas envolvendo relacionamentos entre tabelas
SQL – DML Consulta a dados de uma tabela
Operadores Especiais da SQL
Algoritmos para Operação de Junção Loops Aninhados
Comandos de SQL Excel VBA II.
4/1/2017 Algoritmos para processamento e otimização de consultas (Otimização baseada em custos) Cristiano Galina Slides adaptados do livro Sistema de Banco.
Geração de Planos de Execução Planos para Consultas Aninhadas
Otimização de Consultas em SQL Planos Alternativos AULA 24 Profa. Sandra de Amo GBC053 – BCC
SQL Álvaro Vinícius de Souza Coêlho
Cronograma Formato do Comando SELECT – 1ª Seção Uso de Funções (DATE_FORMAT, DAY, MONTH, NOW, CONCAT, FORMAT, COUNT, AVG, MAX, MIN e FORMAT) AS DISTINCT.
AULA 26 Profa. Sandra de Amo GBC053 – BCC
Otimizador de consultas
Tuning Lílian Simão Oliveira.
Banco de Dados Aplicado ao Desenvolvimento de Software
Algoritmos de Junção – Sort-Merge Join Otimizado Hash Join
Algoritmos de Processamento e Otimização de Consultas
Algoritmos para Operação de Junção Loops Aninhados AULA 17 Profa. Sandra de Amo GBC053 – BCC.
Baseado no material do Professor Raul Paradeda
REVISÃO Comandos SQL - DML SELECT * FROM ?.
Query processing in main memory Vitor Silva. Bibliografia “Query Processing in Main Memory Database Management Systems” - Tobin J. Lehman & Michael J.
AULA 20 Profa. Sandra de Amo GBC053 – BCC
Algoritmos para Operações Binárias entre blocos SQL AULA 19 – Parte I Profa. Sandra de Amo GBC053 – BCC.
BD I / Processamento de Consultas Prof. Altigran Soares da Silva IComp/UFAM.
AULA DE DÚVIDAS 9 de Abril de Especialização  Simplifica-se quando:  especialização é disjunta e  especialização é total e  não há relações.
Fundamentos de Banco de Dados Fundamentos de Banco de Dados Prof. Gale 2º. Semestre 2008.
Otimização de Consultas em SQL Comparação: Joins em pipeline versus Joins materializados AULA 26 – Parte I Profa. Sandra de Amo GBC053 – BCC.
Algoritmos de Junção – IndexNL e Sort Merge Join AULA 19 Profa. Sandra de Amo GBC053 – BCC.
Algoritmos para o operador de Projeção AULA 19 – Parte II Profa. Sandra de Amo GBC053 – BCC.
AOBD 07/08 Mini-Projecto 2 Soluções. 1) Considere que existem três relações R1=(A,B,C), R2=(C,D) e R3=(D,E) com chaves primárias A, C e D, respectivamente.
Sumário 1 SQL Embutida 2 Processamento de Consultas
Banco de Dados I Unidade 6 Processamento de Consultas Otimização Lógica.
1 Structured Query Language (SQL) 4 SQL é uma linguagem normalizada (ANSI) para consultas e actualizações de bases de dados relacionais.
Uma Proposta para Bancos de Dados Categoriais Rafael C. Pinto.
Aula 09: Comando SELECT: Ligações entre tabelas e Subconsultas
Recuperação de Dados Banco de Dados Carina Farias
UCSal – Bacharelado em Informática
Algoritmos para Seleção AULA 23 Profa. Sandra de Amo GBC053 – BCC.
Prática de Banco de Dados Créditos: Prof. Jefferson Silva Adaptações: Prof. Nécio de Lima Veras.
Transcrição da apresentação:

Otimização de Consultas em SQL Planos de Execução AULA 25 Profa. Sandra de Amo GBC053 – BCC

Principais etapas do processo Transformar os blocos simples SQL em expressões da álgebra relacional Enumerar os possíveis planos de execução da expressão da álgebra relacional correspondendo à consulta Estimar o custo de cada plano Escolher o plano com menor custo

Esquema Geral do Otimizador Bloco SQL simples usuário Consulta SQL SQL Parser Transforma em Algebra Coleção de blocos simples B1, B2, ...., Bn Plano canônico Cria planos alternativos Otimizador Planos alternativos Estima custos Melhor Plano de execução Melhor Plano de execução

Decompor consulta em blocos simples Um bloco SQL simples é um comando sem subconsultas aninhadas, onde aparece somente um SELECT, somente um FROM no máximo um WHERE (em FNC) no máximo um GROUP BY no máximo um HAVING

Bloco simples SELECT <lista atributos> FROM <lista relações> WHERE <condição em FNC> GROUP BY HAVING

Exemplo R(sid,bid,day,rname) : RESERVA S(sid,sname,rating,age) : SAILORS B(bid,bname, color) : BOAT Para cada sailor com o mais alto status (rating) e que fez pelo menos 2 reservas de barcos vermelhos, dê seu identificador e a data mais recente em que fez reserva de barco vermelho.

Exemplo (continuação) SELECT DISTINCT S.sid, Min (R.day) FROM Sailors S, Reservas R, Boats B WHERE S.sid = R.sid AND R.bid = B.bid AND B.color = ‘red’ AND S.rating = (SELECT MAX (S2.rating) FROM Sailors S2 ) GROUP BY S.sid HAVING COUNT (*) > 1

Exemplo (continuação) Bloco 1 : bloco interno SELECT MAX (S2.rating) FROM Sailors S2 Resultado : Relação temporária T(A) Bloco 2 : bloco externo SELECT DISTINCT S.sid, Min (R.day) FROM Sailors S, Reservas R, Boats B, T WHERE S.sid = R.sid AND R.bid = B.bid AND B.color = ‘red’ AND S.rating = T.A GROUP BY S.sid HAVING COUNT (*) > 1

Bloco SQL  Expressão algébrica ΠA,B,..., MIN (C) Projeção sobre os atributos do SELECT Having .... Group by ... σ condições do WHERE Seleção sobre as condições do WHERE R1 X R2 X ... X Rn Produto Cartesiano das relações do FROM

Plano de Execução “Canônico” ΠA,B,...,Min(C) ΠA,B,...,C ΠA,B,...,C Having .... Group by A σ condições do WHERE σ R1 X R2 X ... X Rn X Resultado R é ordenado O GROUP BY é executado sobre o resultado R ordenado. O HAVING é aplicado para eliminar certos grupos. Funções de agregação são executadas sobre os grupos finais R1 R2 Rn

O que é um plano de execução ? Plano de execução correspondente à uma expressão algébrica E Sequência de operações equivalente à expressão E, isto é, produzindo o mesmo resultado que E. Para cada operação da sequência (projeção, seleção, junção), um algoritmo é especificado para implementar tal operação.

Exemplo Π Π σ σ Projeção com ordenação Projeção com ordenação Seleção usando indice B+tree no atributo A σ Seleção usando indice Hash no atributo B X Hash Join X Sort Merge Join R S R S

Planos Alternativos Transformar a expressão algébrica “canônica” (Π σ x ) em outra expressão equivalente. Utilizar algoritmos alternativos para implementar as operações algébricas 13

Exemplo R(sid,bid,day,rname) : RESERVA S(sid,sname,rating,age) : SAILORS B(bid,bname, color) : BOAT Quais os dias em que foram reservados barcos vermelhos ? 14

Plano 1 ΠDay Select R.Day From R, B Where R.Bid = B.Bid AND B.Color = ‘Vermelho’ σcolor = ‘vermelho’ R B 15

Plano 2 (otimizado) ΠDay Select R.Day From R Where R.Bid IN ( Select B.Bid From B Where B.Color = ‘Vermelho’ ) R ΠBid σcolor = ‘vermelho’ B 16