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

Slides:



Advertisements
Apresentações semelhantes
Definição do Plano de Execução
Advertisements

Otimização de Consultas em SQL Estimativas de Custos
Álgebra Relacional Marcelo Mendes Manaus
Banco de Dados Prof. Antonio.
Cálculo de Custos de Operações I/O – Arquivos Ordenados
Bulk Loading – Algoritmo AULA 12 - COMPLEMENTO Profa. Sandra de Amo GBC053 – BCC Sandra de Amo.
Otimização de Consultas em SQL Parte II - Planos Alternativos -  Estimativa de Custos dos Planos de Execução AULA 19 Profa. Sandra de Amo Programa de.
REVISÃO PARA 3a PROVA Gerência de Banco de Dados
RESUMO DA AULA 5 Profa. Sandra de Amo GBC053 – BCC
Otimização de Consultas em SQL Parte I - Planos de Execução e Equivalências de Expressões da Álgebra Relacional AULA 19 Profa. Sandra de Amo Programa.
Algoritmos para Projeção eliminando Duplicatas
Gerenciamento de Banco de Dados
Algoritmos de Junção – BNL e IndexNL AULA 16 Profa. Sandra de Amo GBC053 – BCC
AULA 27 Profa. Sandra de Amo GBC053 – BCC
Algoritmos para Operação de Junção
Algoritmos para Seleção Simples AULA 16 Profa. Sandra de Amo GBC053 – BCC
Organização de Arquivos Tipos de Indices Cálculo de Custos de I/O
Algoritmos de Junção – Sort-Merge Join Hash Join
Algoritmos para Seleção com Condições Gerais AULA 17 Profa. Sandra de Amo GBC053 – BCC
Algoritmos para Seleção e Projeção
SQL – Comandos de Agregação
Algoritmos para Seleção Simples
Algoritmos para Operações de Conjuntos AULA 19 Profa. Sandra de Amo GBC053 – BCC
Algoritmos para Operação de Junção – NLJ orientado a tuplas e NLJ orientado a páginas AULA 15 Profa. Sandra de Amo GBC053 – BCC
AULA 23 Profa. Sandra de Amo GBC053 – BCC
Algebra relacional nomeada e não-nomeada
Introdução aos Métodos de Acesso AULA 7 – Parte II Profa. Sandra de Amo GBC053 – BCC
Algoritmos para Projeção e Operações de Conjuntos AULA 22 Profa. Sandra de Amo GBC053 – BCC
B-tree Gerenciamento de Duplicatas Bulk Loading AULA 12 Profa. Sandra de Amo GBC053 – BCC
Otimização de Consultas em SQL Planos de Execução e Equivalências de Expressões da Álgebra Relacional AULA 24 Profa. Sandra de Amo GBC053 – BCC
Algoritmos para Operação de Junção AULA 17 Profa. Sandra de Amo Programa de Pós-Graduação em CC - UFU Sistemas de Banco de Dados
Arquitetura de Sistemas Operacionais Francis Berenger Machado
Sistemas Operacionais I
Algoritmos para Operação de Junção Loops Aninhados
Gerência de Memória.
Sistemas Operacionais Gerenciamento de Memória
4/1/2017 Algoritmos para processamento e otimização de consultas (Otimização baseada em custos) Cristiano Galina Slides adaptados do livro Sistema de Banco.
INF70 – Gerenciamento de Banco de Dados 2 Ordenação Externa Ilmério Reis da Silva UFU/FACOM/BCC.
Geração de Planos de Execução Planos para Consultas Aninhadas
Otimização de Consultas em SQL Planos Alternativos AULA 24 Profa. Sandra de Amo GBC053 – BCC
Cálculo de Custos de I/O Heap Files AULA 4 Profa. Sandra de Amo Gerenciamento de Banco de Dados – BCC.
Arquivos Estruturados por Ordenação– Custos I/O AULA 5 Profa. Sandra de Amo GBC053 – BCC.
Indices: Estruturas Auxiliares para Otimizar Acesso aos Dados
Aula 03 – BCC202 Análise de Algoritmos (Parte 1) Túlio Toffolo www
AULA 26 Profa. Sandra de Amo GBC053 – BCC
Ordenação Externa de Arquivos – Um exemplo
Otimização de Consultas em SQL Planos de Execução
Arquivos Estruturados por Hashing– Custos I/O
Algoritmos de Junção – Sort-Merge Join Otimizado Hash Join
Algoritmos de Processamento e Otimização de Consultas
Algoritmos para Operação de Junção Loops Aninhados AULA 17 Profa. Sandra de Amo GBC053 – BCC.
SISTEMAS OPERACIONAIS I
Query processing in main memory Vitor Silva. Bibliografia “Query Processing in Main Memory Database Management Systems” - Tobin J. Lehman & Michael J.
AULA 20 Profa. Sandra de Amo GBC053 – BCC
Algoritmos para Operações Binárias entre blocos SQL AULA 19 – Parte I Profa. Sandra de Amo GBC053 – BCC.
BD I / Processamento de Consultas Prof. Altigran Soares da Silva IComp/UFAM.
Otimização de Consultas em SQL Comparação: Joins em pipeline versus Joins materializados AULA 26 – Parte I Profa. Sandra de Amo GBC053 – BCC.
AULA 21 Profa. Sandra de Amo BCC - UFU
Algoritmos de Junção – IndexNL e Sort Merge Join AULA 19 Profa. Sandra de Amo GBC053 – BCC.
AOBD 07/08 Mini-Projecto 2 Soluções. 1) Considere que existem três relações R1=(A,B,C), R2=(C,D) e R3=(D,E) com chaves primárias A, C e D, respectivamente.
Banco de Dados I Unidade 6 Processamento de Consultas Otimização Lógica.
PostgreSQL Índices Nuno Campos N.º Nuno Campos - N.º Índice Introdução Tipos de Índices – B-Tree – R-Tree – Hash – GiST Classes de Operadores.
Algoritmos de Junção – Sort Merge Join e Hash Join
Aula 09: Comando SELECT: Ligações entre tabelas e Subconsultas
Daniel Paulo Introdução Informações de uma tabela ou view podem ser encontradas de maneira mais rápida através da utilização.
UCSal – Bacharelado em Informática
Algoritmos para Seleção AULA 23 Profa. Sandra de Amo GBC053 – BCC.
Métodos de Ordenação Externa
Gerência de Memória. Memória Considerações: Recurso caro e escasso; Programas só executam se estiverem na memória principal; Quanto mais processos residentes.
BANCO DE DADOS BASE DE DADOS – É UMA COLEÇÃO DE DADOS INTER- RELACIONADOS, REPRESENTANDO INFORMAÇÕES SOBRE UM DOMÍNIO ESPECÍFICO. EX.: LISTA TELEFONICA,
Transcrição da apresentação:

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

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)

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.

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

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 = ([log /40]+ 1) = ([log 39 6,25] + 1) = = 1000  Custo passo 3 = 250  Custo total = 2500 I/Os

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.

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 = = 1500 I/Os

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.

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

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

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

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 = = 1500 I/Os

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.

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