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

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

Algoritmos para Operação de Junção Loops Aninhados AULA 18 Profa. Sandra de Amo GBC053 – BCC.

Apresentações semelhantes


Apresentação em tema: "Algoritmos para Operação de Junção Loops Aninhados AULA 18 Profa. Sandra de Amo GBC053 – BCC."— Transcrição da apresentação:

1 Algoritmos para Operação de Junção Loops Aninhados AULA 18 Profa. Sandra de Amo GBC053 – BCC

2 Tabelas a serem juntadas R : tabela externa M páginas Pr tuplas por página S : tabela interna N páginas Ps tuplas por página Condição de Junção: Ri = Sj Custo de uma operação de I/O = 10ms

3 Nested Loops Join – tupla a tupla Para cada tupla r ε R faça Para cada tupla s ε S faça se ri = sj então insere em Result Retorne Result t Páginas de S Página de R

4 Custo do NLJ - t/t S é escaneada Pr. M vezes Cada scan em S equivale a N operações de I/O (N = número de páginas de S) R é escaneada uma vez Custo total = Pr. M. N + M Não se considera o custo de escrever o resultado, pois é igual para todos os métodos.

5 Exemplo M = 1000 páginas Pr = 100 registros por página N = 500 Custo = = I/Os ~ 140 horas de processamento !!

6 Nested Loops Join – página a página Para cada R-page de R faça Para cada S-page de S faça se ri = sj então insere em Result Retorne Result Páginas de S Página de R

7 Custo do NLJ- p/p S é escaneada M vezes Cada scan em S equivale a N operações de I/O (N = número de páginas de S) R é escaneada uma vez Custo total = M. N + M Não se considera o custo de escrever o resultado, pois é igual para todos os métodos.

8 Exemplo M = 1000 páginas N = 500 Custo = = I/Os ~ 1,4 horas de processamento

9 Block Nested Loops Join – uso do Buffer Caso 1: Tem-se espaço suficiente no buffer para a relação S inteira + 2 páginas extras Para cada R-page faça Para cada S-page na memória faça se ri = sj então insere em Result Retorna Result Relação S inteira Buffer Página de RPágina de output Custo = M + N I/Os No exemplo : 1500 I/Os = 15 segundos

10 Block Nested Loops Join – uso do Buffer Caso 2: Tem-se espaço suficiente no buffer para B - 2 páginas da relação R + 2 páginas extras Para cada bloco de (B-2) páginas in memory de R faça Para cada S-page faça se ri = sj então insere em Result Retorna Result Bloco de B-2 páginas de R Buffer tem capacidade para B páginas Página de SPágina de output

11 Esquema Geral do BNL Join Bloco de B-2 páginas de R Buffer tem capacidade para B páginas Página de SPágina de output Relações R e S Disco Relação R S

12 Custo do BNL Join K = Número de blocos de B-2 páginas de M K = [M/(B-2)] Cada página de S é escaneada K vezes Cada scan em S equivale a N operações de I/O (N = número de páginas de S) R é escaneada uma vez Custo total = K.N + M = [M/(B-2)]N + M Não se considera o custo de escrever o resultado, pois é igual para todos os métodos.

13 Exemplo M = 1000 páginas N = 500 B = 102 Custo = (1000/100) = 6000 I/Os ~ 1 minuto

14 Exercício Calcular o custo do BNL Join, caso a relação S (menor) seja escolhida como a relação externa. Calcular o custo do BNL Join no Caso 1, caso só se tenha espaço suficiente no buffer para B - 2 páginas da relação S + 2 páginas extras Para cada R-page faça Para cada bloco de B-2 páginas de S faça se ri = sj então insere em Result Retorna Result

15 Otimizações do BNL Join 1. Diminuindo o custo de CPU para fazer as junções. Se houver espaço suficiente na memória, construir uma tabela hash para cada R-block carregado na memória, com chave = atributo da junção. Para cada tupla s ε S, para encontrar r ε R-block tal que ri = sj, utiliza-se a tabela Hash construída.

16 Otimizações do BNL Join 2. Ao invés de utilizar B-2 páginas em memória para alocar blocos da relação externa R, e uma só página para a relação S, utilizar (B-1)/2 páginas para alocar um bloco de R e (B-1)/2 páginas para alocar um bloco da relação interna S. Exercício: calcular o custo neste caso. Onde há melhora de performance em relação ao método anterior (onde 1 única página em memória é alocada para a relação S) ?

17 Conclusão Até o momento: NLJ - t/t = 140 horas NLJ - p/p = 1 hora e 24 min BNL Join com B = 102 páginas no buffer = 1 min


Carregar ppt "Algoritmos para Operação de Junção Loops Aninhados AULA 18 Profa. Sandra de Amo GBC053 – BCC."

Apresentações semelhantes


Anúncios Google