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

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

Optimização - 1 Produto cartesiano Mais parâmetros dos dados U - nº de blocos do resultado dominante M - nº de blocos que cabem na memória principal Algoritmo.

Apresentações semelhantes


Apresentação em tema: "Optimização - 1 Produto cartesiano Mais parâmetros dos dados U - nº de blocos do resultado dominante M - nº de blocos que cabem na memória principal Algoritmo."— Transcrição da apresentação:

1 Optimização - 1 Produto cartesiano Mais parâmetros dos dados U - nº de blocos do resultado dominante M - nº de blocos que cabem na memória principal Algoritmo se uma relação cabe em memória (B S < M; assume-se B S B R ) relação S em memória: faz-se o ciclo exterior para cada bloco de R lido custos (basta uma leitura de cada bloco): entrada - B S +B R (comprimentos: l R tuplo de R; b - bloco) resultado - U = T R T S (l R +l S )/b = T R T S l R /b + T R T S l S /b = B R T S + T R B S (Eq 1) total - B R (T S +1) + B S (T R +1) para cada tuplo em R fazer para cada tuplo em S fazer produzir o tuplo

2 Optimização - 2 Relações grandes Se M < B S ler S por segmentos de dimensão M SR memória Nº segmentos de S: B S /(M-1) entrada: B S + B R B S /(M-1) (Eq 2) total: B S (T R +1) + B R [ T S + B S /(M-1) ] para cada segmento na relação S fazer para cada tuplo no segmento fazer para cada bloco da relação R fazer para cada tuplo do bloco fazer produzir o tuplo Algoritmo

3 Optimização - 3 Execução do produto cartesiano Exemplo1A: R tem 5000 tuplos armazenados em 500 blocos e S 1000 tuplos em 100 blocos M = 101 Custo? 500* *5001= l R*S = l R + l S 5 tuplos/bloco, i.e Exemplo1B: Se M=11? Custo? S dividida em B S /(M-1) = *( /10) + 100*5001= custo de entrada aumentou muito mas é dominado pelo de saída

4 Optimização - 4 Optimização da junção -junção: custo de entrada semelhante ao do produto; custo de saída pode ser inferior problema: na junção natural de AB(A,B) com BC(B,C) qual o tamanho do resultado, i.e., dado um valor B=b em AB quantos tuplos de BC possuem esse valor? Modelo estatístico das relações (para a junção natural) cada atributo tem associado um domínio finito de valores activos conjunto de tuplos potenciais de R é o produto dos domínios dos seus atributos; se R tiver T tuplos em n potenciais, assume-se que T/n é a probabilidade de um tuplo individual ser escolhido se dois atributos tiverem o mesmo nome, têm o mesmo domínio ou, pelo menos, o domínio de um está contido no do outro

5 Optimização - 5 Implicações do modelo AB BC, em que cada valor de B em AB existe em BC, mas o contrário pode não suceder definições D A, D B, D C, E B - domínios de A em AB, B em BC, C em BC e B em AB I A, I B, I C - tamanhos das imagens de A, B e C (J B para E B ) cálculo da dimensão de AB BC nº de tuplos potenciais abc em D A D B D C : I A I B I C probabilidade de um tuplo arbitrário bc estar em BC: T BC /(I B I C ) probabilidade de um tuplo arbitrário ab estar em AB: vale 0 se b D B, mas b E B (ocorre (I B -J B )/I B vezes) vale T AB /(I A J B ), se b E B (ocorre J B /I B vezes) total: (I B -J B )/I B *0 + (J B /I B )*T AB /(I A J B ) = T AB /(I A I B ) (não depende de J B )

6 Optimização - 6 Dimensão da junção natural probabilidade de abc AB BC: T AB T BC /(I A I B 2 I C ) multiplicando pelo nº de tuplos possíveis (I A I B I C ), obtém-se a dimensão estimada da junção: T AB T BC /I B generalizando para vários atributos comuns, tamanho de R S: nº de blocos: (B R T S + T R B S )/I (I é o denominador anterior) (Eq 3) Exemplo 2: R(A,B,C) e S(B,C,D)R.B S.B, S.C R.C com T R =5000, B R =500, T S =1000, B S =100, I B =50, I C =40 U= (500* *5000)/(40*50)= 500 se C for dependente do B ambos funcionam como um só atributo e I=50, resultando em U=20 000, em vez de 500 blocos T R T S I B1 I B2 … I Bk

7 Optimização - 7 Computação de junções Selecção de um produto computar o produto, mas emitir só os tuplos que coincidam nos atributos comuns Exemplo 3 (baseado no ex. 2) I = I B I C = 2000, M=101 Custo de entrada (eq 2) = 500*(100/100)+100 = 600 U = 500 (ver ex. 2); total = = 1100 se M=11 entrada = 500*(100/10)+100 = 5100 U = 500; total = = 5600 custo de entrada é significante na junção, ao contrário de no produto Custo total (Eq 2 + Eq 3) B R [T S /I + B S /(M-1)] + B S (T R /I + 1)

8 Optimização - 8 Computação de junções Ordenação-junção preprocessar as relações R(A,B) e S(B,C) ordenando-as pelo atributo comum percorrer simultaneamente as relações, comparando os valores dos atributos de junção; de cada vez que se encontrarem coincidências faz-se o produto dos respectivos subconjuntos de tuplos método de ordenação: fusão com multivia; faz no máximo log M B passos com 2B acessos em cada passo processo final de junção percorre cada bloco uma só vez 2 B R log M B R + 2 B S log M B S + B R + B S + (B R T S + T R B S )/I Exemplo 3. I=2000; M = 101 custo = 3300; mas M=11 custo = 4500 ordenaçãojunçãosaída


Carregar ppt "Optimização - 1 Produto cartesiano Mais parâmetros dos dados U - nº de blocos do resultado dominante M - nº de blocos que cabem na memória principal Algoritmo."

Apresentações semelhantes


Anúncios Google