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

20
Otimização de Consultas em SQL Planos Alternativos AULA 24 Profa. Sandra de Amo GBC053 – BCC 2012-2

Transcript of Otimização de Consultas em SQL Planos Alternativos AULA 24 Profa. Sandra de Amo GBC053 – BCC...

Page 1: Otimização de Consultas em SQL Planos Alternativos AULA 24 Profa. Sandra de Amo GBC053 – BCC 2012-2.

Otimização de Consultas em SQL Planos Alternativos

AULA 24Profa. Sandra de Amo

GBC053 – BCC2012-2

Page 2: Otimização de Consultas em SQL Planos Alternativos AULA 24 Profa. Sandra de Amo GBC053 – BCC 2012-2.

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

Page 3: Otimização de Consultas em SQL Planos Alternativos AULA 24 Profa. Sandra de Amo GBC053 – BCC 2012-2.

ExemploR(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 ?

Page 4: Otimização de Consultas em SQL Planos Alternativos AULA 24 Profa. Sandra de Amo GBC053 – BCC 2012-2.

Plano 1Select R.Day

From R, B

Where R.Bid = B.Bid AND

B.Color = ‘Vermelho’

σcolor = ‘vermelho’

R B

ΠDay

Page 5: Otimização de Consultas em SQL Planos Alternativos AULA 24 Profa. Sandra de Amo GBC053 – BCC 2012-2.

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

Page 6: Otimização de Consultas em SQL Planos Alternativos AULA 24 Profa. Sandra de Amo GBC053 – BCC 2012-2.

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.

Page 7: Otimização de Consultas em SQL Planos Alternativos AULA 24 Profa. Sandra de Amo GBC053 – BCC 2012-2.

Equivalências de Expressões Algébricas Projeção

Π X1 (R) = Π X1 (Π X2 (... (Π Xn (R))...) Onde cada Xi é um conjunto de atributos Xi está contido em Xi+1

Exemplo: Π A (R) = Π A (ΠAB (Π ABC (R)))

Vantagem: Reduz o número de execuções do algoritmo de projeção

Page 8: Otimização de Consultas em SQL Planos Alternativos AULA 24 Profa. Sandra de Amo GBC053 – BCC 2012-2.

Equivalências de Expressões Algébricas

Produto Cartesiano e Junção Associativa

R (S T) = (R S) T

R (S T) = (R S) T Comutativa

(R S) = (S R)

(R S) = (S R)

Page 9: Otimização de Consultas em SQL Planos Alternativos AULA 24 Profa. Sandra de Amo GBC053 – BCC 2012-2.

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.

Page 10: Otimização de Consultas em SQL Planos Alternativos AULA 24 Profa. Sandra de Amo GBC053 – BCC 2012-2.

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

Page 11: Otimização de Consultas em SQL Planos Alternativos AULA 24 Profa. Sandra de Amo GBC053 – BCC 2012-2.

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

Page 12: Otimização de Consultas em SQL Planos Alternativos AULA 24 Profa. Sandra de Amo GBC053 – BCC 2012-2.

ExercícioDê 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 SR S

A=R S

A=σ B=b1( )

R) σ B=b1(S

A=R) σ B=b1(

Page 13: Otimização de Consultas em SQL Planos Alternativos AULA 24 Profa. Sandra de Amo GBC053 – BCC 2012-2.

ExercíciosSeja 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)

Page 14: Otimização de Consultas em SQL Planos Alternativos AULA 24 Profa. Sandra de Amo GBC053 – BCC 2012-2.

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.

Page 15: Otimização de Consultas em SQL Planos Alternativos AULA 24 Profa. Sandra de Amo GBC053 – BCC 2012-2.

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

c c

Page 16: Otimização de Consultas em SQL Planos Alternativos AULA 24 Profa. Sandra de Amo GBC053 – BCC 2012-2.

Equivalências de Expressões Algébricas

Page 17: Otimização de Consultas em SQL Planos Alternativos AULA 24 Profa. Sandra de Amo GBC053 – BCC 2012-2.

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

Page 18: Otimização de Consultas em SQL Planos Alternativos AULA 24 Profa. Sandra de Amo GBC053 – BCC 2012-2.

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

Page 19: Otimização de Consultas em SQL Planos Alternativos AULA 24 Profa. Sandra de Amo GBC053 – BCC 2012-2.

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)

c c

c c

Page 20: Otimização de Consultas em SQL Planos Alternativos AULA 24 Profa. Sandra de Amo GBC053 – BCC 2012-2.

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