Otimização de Consultas em SQL Planos Alternativos AULA 24 Profa. Sandra de Amo GBC053 – BCC...
Transcript of Otimização de Consultas em SQL Planos Alternativos AULA 24 Profa. Sandra de Amo GBC053 – BCC...
Otimização de Consultas em SQL Planos Alternativos
AULA 24Profa. Sandra de Amo
GBC053 – BCC2012-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
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 ?
Plano 1Select R.Day
From R, B
Where R.Bid = B.Bid AND
B.Color = ‘Vermelho’
σcolor = ‘vermelho’
R B
Π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 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
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)
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í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(
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)
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
c c
Equivalências de Expressões Algébricas
ExercicioMostre que a propriedade não é válida caso Y contenha atributos que não apareçam em X.
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
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
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