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 2013-1.

Slides:



Advertisements
Apresentações semelhantes
AULA 5 PGC Sistemas de Banco de Dados Profa. Sandra de Amo
Advertisements

Otimização de Consultas em SQL Estimativas de Custos
Álgebra Relacional Marcelo Mendes Manaus
SQL Avançado 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.
Linguagens relacionais
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
Cálculo Relacional Datalog não-recursivo
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
Modelos de Preferências AULA 15 DATA MINING Sandra de Amo.
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 Seleção Simples
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.
Algebra relacional nomeada e não-nomeada
Algoritmos para Projeção e Operações de Conjuntos AULA 22 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
ÁLGEBRA RELACIONAL Cada operador da álgebra relacional toma uma ou duas relações como sua entrada e gera uma nova relação como saída. São oito os operadores.
Operadores Especiais da SQL
Algoritmos para Operação de Junção Loops Aninhados
Colégio da Imaculada Curso Técnico em Informática Álgebra Relacional
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
Otimização de Consultas em SQL Planos de Execução
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 ?.
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.
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.
Algoritmos de Junção – Sort Merge Join e Hash Join
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 e Equivalências de Expressões da Álgebra Relacional AULA 24 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 SQL Parser Consulta SQL usuário Coleção de blocos simples B1, B2,...., Bn Otimizador Melhor Plano de execução Bloco SQL simples Plano canônico Cria planos alternativos Planos alternativos Estima custos Melhor Plano de execução Transforma em Algebra

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 FROM WHERE 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) Having.... Group by... σ condições do WHERE R 1 X R 2 X... X R n Projeção sobre os atributos do SELECT Seleção sobre as condições do WHERE Produto Cartesiano das relações do FROM

Plano de Execução Canônico Π A,B,...,Min(C) σ condições do WHERE R 1 X R 2 X... X R n Having.... Group by A Π A,B,...,C σ X R1 R2Rn 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

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 σ X RS Π Projeção com ordenação Seleção usando indice B+tree no atributo A Hash Join σ X RS Projeção com ordenação Sort Merge Join Π Seleção usando indice Hash no atributo B

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

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 ?

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

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

Equivalências de Expressões Algébricas Seleção σ c1 ^ c2 ^... ^ cn (R) = σ c1 (σ c2 (... (σ cn (R))...) Vantagens: Permite realizar uma única seleção, verificando todas as condições simultaneamente, em vez de se executar n seleções separadamente em sequência. σ c1 (σ c2 (R) ) = σ c2 (σ c1 (R) ) As condições podem ser executadas em qualquer ordem. Vantagem: executar a condição mais seletiva primeiro.

Equivalências de Expressões Algébricas Projeção Π X1 (R) = Π X1 (Π X2 (... (Π Xn (R))...) Onde cada X i é um conjunto de atributos X i está contido em X i+1 Exemplo: Π A (R) = Π A (Π AB (Π ABC (R))) Vantagem: Reduz o número de execuções do algoritmo de projeção

Equivalências de Expressões Algébricas Produto Cartesiano e Junção Associativa R (S T) = (R S) T Comutativa (R S) = (S R)

Exercicio Mostre que R (S T) = (T R) S Conclusão: A junção entre diversas relações pode ser feita em qualquer ordem. Propriedade importante na geração de planos alternativos.

Equivalências de Expressões Algébricas Seleção e Projeção Π X σ c (R) = σ c Π X (R) Onde todos os atributos aparecendo na condição c estão contidos em X Exercício: Mostrar que isto não é verdade caso existam atributos de c que não aparecem em X

Equivalências de Expressões Algébricas Seleção e Junção R S = σ c (R S) σ c (R S) = (σ c R S) se todos os atributos de c são atributos de R e não de S σ c (R S) = (σ c R S) se todos os atributos de c são atributos de R e não de S Vantagens: junção pode ser feita entre relações menores. c

Exercício Dê um exemplo para mostrar que as propriedades não são válidas caso c contenha atributos de ambas as relações R e S. R S R S A= R S σ B=b1 () R) σ B=b1 ( S A= R) σ B=b1 (

Exercícios Seja c = c1 ^c2 ^c3 c1 envolve atributos de R e S c2 envolve atributos somente de R c3 envolve atributos somente de S Mostre que: σ c (R S) = σ c1 (σ c2 R σ c3 S)

Equivalências de Expressões Algébricas Projeção e Produto Cartesiano Π X (R S) = (Π Y R Π Z S) Y = atributos de X que aparecem em R Z = atributos de X que aparecem em S Exemplo: Π AB (R S) = (Π A R Π B S) onde R(AC) e S(BC) Vantagem: Produto cartesiano pode ser feito entre relações menores.

Equivalências de Expressões Algébricas Projeção e Junção Π X (R S) = (Π Y R Π Z S) Y = atributos de X que aparecem em R Z = atributos de X que aparecem em S Os atributos envolvidos na condição de junção c devem aparecer em X Exemplo : R(ACD), S(BEC), X = {A, B, C}, condição de junção : R.C = S.C Π ABC (R S) = (Π A R Π B S) c c cc

Equivalências de Expressões Algébricas

Exercicio Mostre que a propriedade não é válida caso Y contenha atributos que não apareçam em X.

Exercicio Mostre que a propriedade não é válida caso a condição de junção c contenha atributos que não estão em X

Equivalências de Expressões Algébricas Distribuição Generalizada (Projeção e Junção) Π X (R S) = Π X (Π Y R Π Z S) Y = atributos de R que aparecem em X ou c Z = atributos de S que aparecem em Y ou c Exemplo : R(ACD), S(BEC), X = {A, B}, condição de junção : C = 3 Π AB (R S) = Π AB (Π AC R Π BC S) cc c c

Equivalências de Expressões Algébricas União, Intersecção: Associativa Comutativa Seleção e Projeção podem comutar com União, Intersecção e Diferença