12
Otimização de Consultas em SQL Comparação: Joins em pipeline versus Joins materializados AULA 26 – Parte I Profa. Sandra de Amo GBC053 – BCC

Otimização de Consultas em SQL Comparação: Joins em pipeline versus Joins materializados

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

Page 1: Otimização de Consultas em SQL Comparação: Joins em pipeline versus Joins materializados

Otimização de Consultas em SQL Comparação: Joins em pipeline versus

Joins materializados

AULA 26 – Parte I

Profa. Sandra de Amo

GBC053 – BCC

Page 2: Otimização de Consultas em SQL Comparação: Joins em pipeline versus Joins materializados

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

Page 3: Otimização de Consultas em SQL Comparação: Joins em pipeline versus Joins materializados

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

Page 4: Otimização de Consultas em SQL Comparação: Joins em pipeline versus Joins materializados

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

Page 5: Otimização de Consultas em SQL Comparação: Joins em pipeline versus Joins materializados

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

Page 6: Otimização de Consultas em SQL Comparação: Joins em pipeline versus Joins materializados

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

Page 7: Otimização de Consultas em SQL Comparação: Joins em pipeline versus Joins materializados

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

Page 8: Otimização de Consultas em SQL Comparação: Joins em pipeline versus Joins materializados

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.

Page 9: Otimização de Consultas em SQL Comparação: Joins em pipeline versus Joins materializados

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

Page 10: Otimização de Consultas em SQL Comparação: Joins em pipeline versus Joins materializados

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

Page 11: Otimização de Consultas em SQL Comparação: Joins em pipeline versus Joins materializados

Exercicio 3 Calcular o custo do seguinte plano de execução:

T

R S

Page 12: Otimização de Consultas em SQL Comparação: Joins em pipeline versus Joins materializados

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