Upload
fredericka-miller
View
17
Download
0
Embed Size (px)
DESCRIPTION
Otimização de Consultas em SQL Comparação: Joins em pipeline versus Joins materializados. AULA 26 – Parte I Profa. Sandra de Amo GBC053 – BCC. Exercício 1. Sejam R(A,B), S(B,C) e T(C,D). - PowerPoint PPT Presentation
Citation preview
Otimização de Consultas em SQL Comparação: Joins em pipeline versus
Joins materializados
AULA 26 – Parte I
Profa. Sandra de Amo
GBC053 – BCC
Exercício 1 Sejam R(A,B), S(B,C) e T(C,D).
M = 1000 = tamanho de R, N = 500 = tamanho de S, P = 800 = tamanho de T. Os dois Joins utilizam o algoritmo NLJ-pag a pag. O 1o Join é executado em pipeline. Descrever com detalhes a execução do 1o Join.
R S
T
R (ext) S (int) T (int)R x S
A cada vez que a página do frame 3se completa, a tabela T é carregada página a página no frame 4. A junção da página do frame 3 com todas as páginasde T é efetuada e armazenada no Frame 5
Output(R x S) x T
Frame 1 Frame 2 Frame 3 Frame 4 Frame 5
R (ext) S (int) T (int)R x S Output(R x S) x T
Frame 1 Frame 2 Frame 3 Frame 4 Frame 5
Tabela R é carregada 1 única vezTabela S é carregada M vezes, onde M = num. de páginas de RTabela T é carregada K vezes, onde K = num. de páginas de R x S
R (ext) S (int) T (int)R x S Output(R x S) x T
Frame 1 Frame 2 Frame 3 Frame 4 Frame 5
Custo do plano executado em pipeline, sabendo queM = 1000, N = 500, P = 800= 1000 + 1000.500 + ((1000*500)/10).800 = 501.000 + 40.000.000 = 40.501.000Tempo = 405.010 seg = 112,5 horas
Exercício 2Não é possível utilizar a estratégia de pipeline para implementar um duplo join
utilizando o algoritmo NLJ/p-p para os dois Joins com o plano linear à direita abaixo. Descrever com detalhes a execução do 1o Join e o custo deste plano.
R
S T
S (ext) T (int) S x T
A cada vez que a página do frame 3se completa o conteúdo do frame 3 é gravadoem disco (materializado).
Frame 1 Frame 2 Frame 3
R (ext) S x T (int) R x (S x T)
Frame 1 Frame 2 Frame 3
Quando a relação S x T for TOTALMENTE gravada em disco, a relação R começa a ser carregada no Frame 1,Página a página e no Frame 2 a relação S x T é carregada M vezes ! Resultado da junção de R com (S x T) é calculado no Frame 3.
Custo de criar S x T = 500 + 500*800 = 400.500Tamanho de S x T = (500*800/10) = 40.000Custo de gravar S x T = 40.000
Subtotal = 480.500
S (ext) T (int) S x T
Frame 1 Frame 2 Frame 3
R (ext) S x T (int) R x (S x T)
Frame 1 Frame 2 Frame 3
Custo de criar R x (S x T) = 1000 + 1000*40.000 = 40.001.000Custo total do plano = 40.001.000 + 480.500 = 40.481.500Tempo = 404.815 seg Plano anterior em pipeline = 405.010 seg Diferença de 195 seg = 3,25 min
Exercicio 3 Calcular o custo do seguinte plano de execução:
T
R S
Exercicio 4Considere o plano left deep, onde o algoritmo utilizado para o Join é o Sort-
Merge Join (não otimizado). Este plano não pode ser executado em
pipeline ! (Por que ???) Calcule seu custo, com um buffer de 5 páginas.
R S
T
Ordenação de R: 10000Ordenação de S : 4000Ordenação de T : 6400
Criação de R x S = 1000 + 500 = 1500Tamanho de R x S = 50.000Gravação de R x S = 50.000Ordenação de R x S = 800.000Custo de (R x S) x T = 50.000 + 800 =
50.800Custo total = 50.800 + 800.000 + 50.000+ 1500 + 20.400 = 922.700 Tempo = 9227 seg = 2,56 horas