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

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

Algoritmos para o operador de Projeção AULA 19 – Parte II Profa. Sandra de Amo GBC053 – BCC.

Apresentações semelhantes


Apresentação em tema: "Algoritmos para o operador de Projeção AULA 19 – Parte II Profa. Sandra de Amo GBC053 – BCC."— Transcrição da apresentação:

1 Algoritmos para o operador de Projeção AULA 19 – Parte II Profa. Sandra de Amo GBC053 – BCC

2 Projeção SELECT DISTINCT R.A, R.B FROM R Duas etapas principais : 1. Remover colunas indesejáveis 2. Eliminar as duplicatas (o mais difícil)

3 Projeção usando Ordenação 1. Scan de R para produzir as tuplas projetadas (sem os campos indesejáveis) 2. Ordena o resultado, utilizando a combinação de todos os atributos da projeção como chave da ordenação 3. Scan do resultado ordenado para eliminação das tuplas adjacentes repetidas.

4 Custo  Scan de R = M I/Os  T = número de páginas produzidas da relação projetada (T = c.M onde c < 1) T depende do número e do tamanho dos campos removidos em cada tupla.  Custo passo 1 = M + T  Custo passo 2 (Ordenação) = 2T ([log B-1 T/B] + 1)  Custo passo 3 = T  Custo total = M + T + 2T ([log B-1 T/B] + 1) +T

5 Exemplo M = 1000 Cada tupla de M ocupa 40 bytes Cada tupla projetada ocupa 10 bytes Logo T = 250 páginas B = 40 páginas  Custo passo 1 = 1250  Custo passo 2 = 2. 250 ([log 39 250/40]+ 1) = 2. 250 ([log 39 6,25] + 1) = 2.250. 2 = 1000  Custo passo 3 = 250  Custo total = 2500 I/Os

6 Otimização  Pode-se projetar as tuplas durante a primeira iteração da ordenação.  A partir da segunda iteração da ordenação já vai-se eliminando as duplicatas à medida que são criados os subarquivos ordenados.

7 Exemplo M = 1000 T = Relação projetada = 250 páginas B = tamanho do buffer = 40 páginas  Passo 0 da ordenação: 1000 páginas são lidas em memória durante 1000/40 = 25 etapas A cada etapa é criado um subarquivo em disco, ordenado com 40/4 = 10 páginas No total, são 250 páginas escritas no disco, divididas em 25 subarquivos ordenados e projetados com 10 páginas cada um.  Passo 1 da ordenação: Há espaço suficiente na memória (40 > 25) para se fazer o merge dos 25 subarquivos e simultaneamente eliminar-se as duplicatas. São lidas 250 páginas Resultado: um único arquivo ordenado, projetado e onde as duplicatas foram eliminadas.  Custo total = 1250 + 250 = 1500 I/Os

8 Projeção usando Hashing  Usada quando se tem um tamanho de buffer B razoável com relação ao tamanho da relação R.  Usa a idéia do algoritmo de Hash Join de Junção  Fase do Particionamento + Projeção: produz como resultado a relação R projetada (ainda sem a eliminação de duplicatas), organizada em partições, segundo uma função hash h, calculada sobre os atributos da projeção.  Fase da Eliminação das Duplicatas. Supomos que tamanho de uma partição ≤ B Para cada partição carregada no buffer, varre-se a partição e elimina- se as duplicatas. Todos os registros de dados com valores duplicados estão numa mesma partição.

9 Fase do Particionamento e Projeção de R Buffer tem capacidade para B páginas, onde B – 1 = número de partições Página de R Relação R Disco Relação R’ Particionada e Projetada Pt 1Pt 2Pt 3Pt 6 Pt 5 Pt 4 Projeta e Distribui usando hash h Sobre a combinação dos atributos projetados M páginas T páginas

10 Fase da Eliminação de Duplicatas Buffer tem capacidade para B páginas, onde B = tamanho de uma partição de R’ Relação R’ particionada Disco Relação R’ sem duplicatas Partição n de R’ (inteira) Página de R’ sem duplicatas

11 Tamanho mínimo de Buffer  Fase do Particionamento + Projeção Cria-se B-1 partições Registros de cada partição são projetados T = tamanho da relação projetada R’ Tamanho de uma partição = T/B-1  Fase de Eliminação das Duplicatas B ≥ T/B-1  (B-1).B ≥ T (B-1).B > (B-1).(B-1) ≥ T Se B-1 ≥ T teremos que (B-1).B ≥ T Logo, basta considerar B ≥ T + 1 ou equivalentemente B > T

12 Exemplo M = 1000 T = Relação projetada = 250 páginas B = tamanho do buffer = 40 páginas  Fase de Particionamento 1000 páginas são lidas em memória 250 páginas são gravadas 250 = 15,81 40 > 15,81. Logo, temos espaço suficiente no buffer para realizar a fase de eliminação de duplicatas  Fase de Eliminação de Duplicatas 250 páginas são lidas  Custo total = 1250 + 250 = 1500 I/Os

13 Projeção nos SGBDs comerciais  Informix: usa o algoritmo baseado em hash  IBM DB2, Oracle 8 e o Sybase ASE: usa o algoritmo baseado em ordenação  Microsoft SQL Server, Sybase ASIQ: implementam os algoritmos baseados em Hash e ordenação.

14 Exercicio Constrói T1 e T2 na primeira etapa da ordenação de cada uma das tabelas Na segunda etapa da ordenação elimina duplicatas de T1 e T2 produzindo T1’ e T2’ Executa a fase de intercalação do operador UNION sobre T1’ e T2’. Qual o plano mais eficiente ? Este ou o proposto na Parte I ? (Suponha que cada tupla de T1 tem em média 3 duplicatas e cada tupla de T2 tem em média 2 duplicatas ). Buffer = 40 (Select B.Bid From Barcos B Where B.Cor = ‘Verde’) UNION (Select R.Bid From Reservas R Where R.Day = 01/05/2012) (Select Distinct B.Bid From Barcos B Where B.Cor = ‘Verde’) UNION (Select Distinct R.Bid From Reservas R Where R.Day = 01/05/2012) T1 T2


Carregar ppt "Algoritmos para o operador de Projeção AULA 19 – Parte II Profa. Sandra de Amo GBC053 – BCC."

Apresentações semelhantes


Anúncios Google