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

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

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.

Apresentações semelhantes


Apresentação em tema: "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."— Transcrição da apresentação:

1 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

2 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

3 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

4 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

5 Bloco simples SELECT FROM WHERE GROUP BY HAVING

6 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.

7 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

8 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

9 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

10 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

11 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.

12 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

13 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

14 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 ?

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

16 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

17 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.

18 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

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

20 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.

21 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

22 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

23 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 (

24 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)

25 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.

26 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

27 Equivalências de Expressões Algébricas

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

29 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

30 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

31 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


Carregar ppt "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."

Apresentações semelhantes


Anúncios Google