Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Passos Seguintes:
Pginas Pgina
de de
Input Output
Buffer Pool
Ordena
Pginas
Uma pgina para
de Construir o output
Input
Buffer Pool
Produz 7 subarquivos ordenados
Ordena
Pginas
Uma pgina para
de Construir o output
Input
1, 3
Buffer Pool
Produz 7 subarquivos ordenados
1,2
3,5
3,4
7,7
5,6
8,9
7,10
1,2 3,5
3,4 7,7
5,6 8,9
7,10
1,2
3,3
4,5
5,6
7,7
Leia cada pgina do disco para a memria, oredene-a e escreva de volta para o disco
// intercale pares de runs produzindo runs maiores at que reste apenas um run contendo todos os
// registros do arquivo.
Enquanto o nro de runs produzidos no final do passo anterior for maior que 1 faa:
// para passos = 1, 2, ..
Enquanto h runs para serem intercalados do passo anterior escolha os 2 runs produzidos no passo
anterior
leia cada run em um buffer de entrada, uma pgina por vez;
intercale os runs e escreva no buffer de sada;
force a escrita do buffer de sada para o disco, uma pgina por vez.
fim proc
Exerccio
Considere o seguinte arquivo contendo 8
pginas com 2 registros cada pgina.
Ordene esse arquivo usando Two-merge sort e
determine o custo em termos de nros de IOs:
1,2
3,5
1,3 10,6 5,6
7,10
5,2 5,7
3,4
4,6
B=4 6,7
Ordenao Externa
External Merge Sort
2o.) Passo n, para n#0 - nos demais passos usa-se B-1 pginas
de buffer para entradas e uma para sada. Desta forma, B-1
subarquivos podero ser intercalados em cada passo:
O segundo refinamento mais importante: B-1 subarquivos so
intercalados a cada passo o nmero de passos reduzido. O
nmero de passos passa de (log2N) +1 para (logB-1N1) +1
1,2 3,4
3,5 4,6
5,6 6,7
7,10
1,2 3,4
Ordenao Externa
External Merge Sort
2o.) Passo n, para n#0 - nos demais passos usa-se B-1 pginas
de buffer para entradas e uma para sada. Desta forma, B-1
subarquivos podero ser intercalados em cada passo:
O segundo refinamento mais importante: B-1 subarquivos so
intercalados a cada passo o nmero de passos reduzido. O
nmero de passos passa de (log2N) +1 para (logB-1N1) +1
1,2 3,4
3,5 4,6
5,6 6,7
7,10
3,4
1,2
Ordenao Externa
External Merge Sort
2o.) Passo n, para n#0 - nos demais passos usa-se B-1 pginas
de buffer para entradas e uma para sada. Desta forma, B-1
subarquivos podero ser intercalados em cada passo:
O segundo refinamento mais importante: B-1 subarquivos so
intercalados a cada passo o nmero de passos reduzido. O
nmero de passos passa de (log2N) +1 para (logB-1N1) +1
1,2 3,4 1,2
3,5 4,6
5,6 6,7
7,10
3,4
Ordenao Externa
External Merge Sort
2o.) Passo n, para n#0 - nos demais passos usa-se B-1
pginas de buffer para entradas e uma para sada.
Desta forma, B-1 subarquivos podero ser intercalados
em cada passo:
3,5 3,4
Ordenao Externa
External Merge Sort
2o.) Passo n, para n#0 - nos demais passos usa-se B-1
pginas de buffer para entradas e uma para sada.
Desta forma, B-1 subarquivos podero ser intercalados
em cada passo:
,5 ,4
3, 3
Ordenao Externa
External Merge Sort
2o.) Passo n, para n#0 - nos demais passos usa-se B-1
pginas de buffer para entradas e uma para sada.
Desta forma, B-1 subarquivos podero ser intercalados
em cada passo:
,5 ,4
Ordenao Externa
External Merge Sort
2o.) Passo n, para n#0 - nos demais passos usa-se B-1
pginas de buffer para entradas e uma para sada.
Desta forma, B-1 subarquivos podero ser intercalados
em cada passo:
,5
,4
Ordenao Externa
External Merge Sort
2o.) Passo n, para n#0 - nos demais passos usa-se B-1
pginas de buffer para entradas e uma para sada.
Desta forma, B-1 subarquivos podero ser intercalados
em cada passo:
,5 4,6
4
Ordenao Externa
External Merge Sort
2o.) Passo n, para n#0 - nos demais passos usa-se B-1
pginas de buffer para entradas e uma para sada.
Desta forma, B-1 subarquivos podero ser intercalados
em cada passo:
,5 6
4, 4
Ordenao Externa
External Merge Sort
2o.) Passo n, para n#0 - nos demais passos usa-se B-1
pginas de buffer para entradas e uma para sada.
Desta forma, B-1 subarquivos podero ser intercalados
em cada passo:
,5 6
Ordenao Externa
External Merge Sort
2o.) Passo n, para n#0 - nos demais passos usa-se B-1
pginas de buffer para entradas e uma para sada.
Desta forma, B-1 subarquivos podero ser intercalados
em cada passo:
5,
Ordenao Externa
External Merge Sort
2o.) Passo n, para n#0 - nos demais passos usa-se B-1
pginas de buffer para entradas e uma para sada.
Desta forma, B-1 subarquivos podero ser intercalados
em cada passo:
5,6 6
5,
Ordenao Externa
External Merge Sort
2o.) Passo n, para n#0 - nos demais passos usa-se B-1
pginas de buffer para entradas e uma para sada.
Desta forma, B-1 subarquivos podero ser intercalados
em cada passo:
,6 6
5, 5
Ordenao Externa
External Merge Sort
2o.) Passo n, para n#0 - nos demais passos usa-se B-1
pginas de buffer para entradas e uma para sada.
Desta forma, B-1 subarquivos podero ser intercalados
em cada passo:
,6 6
Ordenao Externa
External Merge Sort
2o.) Passo n, para n#0 - nos demais passos usa-se B-1
pginas de buffer para entradas e uma para sada.
Desta forma, B-1 subarquivos podero ser intercalados
em cada passo:
6,
Ordenao Externa
External Merge Sort
2o.) Passo n, para n#0 - nos demais passos usa-se B-1
pginas de buffer para entradas e uma para sada.
Desta forma, B-1 subarquivos podero ser intercalados
em cada passo:
7,10 6
6,
Ordenao Externa
External Merge Sort
2o.) Passo n, para n#0 - nos demais passos usa-se B-1
pginas de buffer para entradas e uma para sada.
Desta forma, B-1 subarquivos podero ser intercalados
em cada passo:
7,10
6, 6
Ordenao Externa
External Merge Sort
2o.) Passo n, para n#0 - nos demais passos usa-se B-1
pginas de buffer para entradas e uma para sada.
Desta forma, B-1 subarquivos podero ser intercalados
em cada passo:
7,10
Ordenao Externa
External Merge Sort
2o.) Passo n, para n#0 - nos demais passos usa-se B-1
pginas de buffer para entradas e uma para sada.
Desta forma, B-1 subarquivos podero ser intercalados
em cada passo:
7,10 6,7
Ordenao Externa
External Merge Sort
2o.) Passo n, para n#0 - nos demais passos usa-se B-1
pginas de buffer para entradas e uma para sada.
Desta forma, B-1 subarquivos podero ser intercalados
em cada passo:
,10 ,7
6,7
Ordenao Externa
External Merge Sort
2o.) Passo n, para n#0 - nos demais passos usa-se B-1
pginas de buffer para entradas e uma para sada.
Desta forma, B-1 subarquivos podero ser intercalados
em cada passo:
7,10
Ordenao Externa
External Merge Sort
2o.) Passo n, para n#0 - nos demais passos usa-se B-1
pginas de buffer para entradas e uma para sada.
Desta forma, at B-1 subarquivos podero ser
intercalados em cada passo:
7,10
Exerccio
Considere o seguinte arquivo contendo 8
pginas com 2 registros cada pgina.
Ordene esse arquivo usando External Merge
Sort, com B=4 e determine o custo em termos
de nros de IOs:
N1 = 8/4 = 2
custo = 2N((logB-1N1) +1) = 16((log32)
+1) = 32 I/Os
External Merge Sort
Algoritmo
Inicio proc
// intercale B-1 subarquivos produzindo um subarquivo ordenado (run) de tamanho igual a soma de
// pginas dos B-1 subarquivos de entrada. Repita este procedimento at que apenas um
//subarquivo com o
// nmero total de pginas do arquivo seja produzido:
Enquanto o nro de subarquivos produzidos no final do passo anterior for maior que 1 faa:
// para passos = 1, 2, ..
Usando a frmula:
N1 = 108/5 = 22
Custo = 2*N*(logB-1N1 + 1) = 2 * 108 *( log422 +1) = 864
COMO ESPERADO!!!!!
Melhorias : minimizando o nmero
de subarquivos do passo 0
Replacement Sort
UFU/FACOM/BCC GBD
Loop de uma rodada do
Replacement Sort
UFU/FACOM/BCC GBD
Replacement Sort - Consideraes
finais
Registros de tamanho varivel dificultam o processo;
700 650
UFU/FACOM/BCC GBD
Exerccio
Seja B = 6, 1 reg/pg.
Ordene o seguinte arquivo de 13 pginas
usando External Merge Sort e o Replacement
Sort. Analise os resultados em termos do
tamanho e nmero de runs.
503 087 512 061 800 170 908 1000 987 154 426 275 509 612 700 650 900
rvore B+ como alternativa para a
ordenao
se existe ndice baseado em rvore B+, considere
utiliz-la em substituio ordenao externa.
Consideraes:
Se a rvore B+ agrupada trata-se de uma boa
idia;
Caso contrrio perigoso e pode ser uma idia
muito ruim.
UFU/FACOM/BCC GBD Pgina:63
rvore B+ Agrupada como
alternativa ordenao
Consulta = 3 +
Consideraes finais sobre
classificao externa
importante no processamento de consultas