Algoritmos para Seleção Simples AULA 16 Profa. Sandra de Amo GBC053 – BCC 2012-2.

Slides:



Advertisements
Apresentações semelhantes
Otimização de Consultas em SQL Estimativas de Custos
Advertisements

Estruturas de Indexação
AULA 8 Profa. Sandra de Amo GBC053 – BCC
AULA 26 Profa. Sandra de Amo GBC053 – BCC
Indice estruturado por Hash
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
Cálculos de Custos I/O-Arquivos Hash Introdução aos Métodos de Acesso
Indices estruturados por B-TREE
Organização de Arquivos Cálculo de Custos de I/O Arquivos Hashed AULA 7 – Parte I Profa. Sandra de Amo GBC053 – BCC
Gerenciamento de Arquivos, Páginas e Registros RESUMO DA AULA 3 Profa. Sandra de Amo GBC053 – BCC
Algoritmos para Projeção eliminando Duplicatas
Algoritmos de Junção – BNL e IndexNL AULA 16 Profa. Sandra de Amo GBC053 – BCC
AULA 27 Profa. Sandra de Amo GBC053 – BCC
Organização de Arquivos Introdução
Algoritmos para Operação de Junção
Estimativas de Custos: Arquivos Heap, Ordenados e Hashed Indices e Métodos de Acesso AULA 13 Profa. Sandra de Amo Programa de Pós-graduação em Ciência.
Organização de Arquivos Tipos de Indices Cálculo de Custos de I/O
Algoritmos de Junção – Sort-Merge Join Hash Join
AULA 10 Profa. Sandra de Amo GBC053 – BCC
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
SQL – Consultas Aninhadas e Agregação Profa. Sandra de Amo Capitulo 5 – Livro Texto Database Management Systems Ramakrishnan - Gehrke.
Gerenciamento de Arquivos, Páginas e Registros
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
Método de Acesso Dinâmico - B-Tree AULA 14 Profa. Sandra de Amo Programa de Pós-Graduação em CC - UFU Sistemas de Banco de Dados
Método de Acesso Dinâmico: B-Tree - Deleção Chaves de busca sem duplicatas AULA 9 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
Revisão Prova 2 Métodos de Acesso: BTree e Hash AULA 20 Profa. Sandra de Amo GBC053 – BCC
Árvores B Conceitos Exemplos.
Arquivos Extensíveis.
Indexação e Hashing Muitas consultas referenciam apenas uma pequena porção dos registros em uma tabela. Portanto necessitamos ser capaz de localizar estes.
Algoritmos para Operação de Junção Loops Aninhados
Marco Antonio Montebello Júnior
Módulo Financeiro Centro de Custo.
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
INF70 – Gerenciamento de Banco de Dados 2 Índices baseados em Hash Ilmério Reis da Silva UFU/FACOM/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.
Coordenação Geral de Ensino da Faculdade
Indices: Estruturas Auxiliares para Otimizar Acesso aos Dados
Ordenação Externa de Arquivos – Um exemplo
Revisão Prova 2 Métodos de Acesso – Parte 2 AULA 21 Profa. Sandra de Amo GBC053 – BCC.
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
Estatística Aula 9 – 28/02/2011.
Algoritmos para Operação de Junção Loops Aninhados AULA 17 Profa. Sandra de Amo GBC053 – BCC.
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.
Tabela Hash Alunos : Gustavo Jorge Zanin nºUSP
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.
Algoritmos para o operador de Projeção AULA 19 – Parte II 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.
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
Algoritmos para Seleção AULA 23 Profa. Sandra de Amo GBC053 – BCC.
Transcrição da apresentação:

Algoritmos para Seleção Simples AULA 16 Profa. Sandra de Amo GBC053 – BCC

Seleção SELECT * FROM R WHERE R.A op a op: =,,, Tamanho de R = M páginas Número de tuplas por página = Pr

R não ordenada, não tem índice em A Melhor solução = scan da relação R Custo = M I/Os

R sem índice, mas ordenada por A Busca binária até encontrar a primeira tupla da resposta. Custo da busca = log 2 M = log = 10 I/Os Scan de R a partir desta tupla para recuperar o resto das tuplas que casam. Custo : depende do número de tuplas que satisfazem a condição da resposta. Se A é chave de R e op é a igualdade: custo = 1 Se A não é chave de R, op é a igualdade, as tuplas com valores iguais do atributo A cabem em X páginas (distribuição uniforme) então Custo = X Em geral Custo total = log 2 M + custo de escanear o restante da relação R.

R com índice Indice = B-Tree Custo para encontrar a folha inicial satisfazendo a condição de seleção = 3 a 4 I/Os Custo de recuperar as entradas de DADOS satisfazendo a condição de seleção Custo depende de : Do número de tuplas de DADOS qualificadas Se o índice é agrupado ou não

R tem índice B+ tree em A Condição de seleção : A > a *27*33*37*46*40*51*55*63*97* *15* SELECT * FROM R WHERE A > 34 Indice agrupado (e esparso)

R tem índice B+ tree em A, Condição de seleção : A > a Índice é agrupado Custo = 2 a 4 I/Os até encontrar a primeira entrada do arquivo de índice. Custo de recuperar todas as tuplas no banco de dados satisfazendo a condição A > a As tuplas satisfazendo a condição de seleção estão contidas em p.I páginas, onde I = número de páginas do arquivo de índice contendo entradas com chave A > a p = fator que relaciona o tamanho de um registro de DADOS e um registro de indice 1 registro de dados = p registros de indices Custo Total de recuperar todas as tuplas: 4 + p.I

R tem índice B+ tree em A Condição de seleção : A > a *27*33*37*46*40*51*55*63*97* *15* SELECT * FROM R WHERE A > 34 Indice não agrupado (e denso) Pid = 10Pid = 7 Pid = 2 Pid = 1

R tem índice B+ tree em A, Condição de seleção: A > a Indice não agrupado: Custo de recuperar todas as tuplas no banco de dados após encontrar a primeira entrada no arquivo de indice pode ser igual ao número de tuplas satisfazendo a condição A > a Solução: ordenar as entradas do arquivo de indice pelo page- id do campo * Entrada do indice = Custo = número de páginas contendo tuplas com A > a

Exercício (1a Prova) Calcular o custo da consulta SELECT * FROM R WHERE R.A > 38 Resposta = 29 I/Os

Exercício Calcular o custo de: Select * From R where A = a nos seguintes casos: Indice agrupado, B+ tree Indice não agrupado (e denso !!), B+ tree Observação: Análise os casos em que A é chave primária de R e quando não é chave primária de R

Exemplo Select * From R where R.name < C% M = número de páginas de R = tuplas por página tuplas em R Nomes são uniformemente distribuídos com relação à letra inicial. 26 letras no alfabeto Portanto: 10% dos nomes satisfazem R.name < C% tuplas satisfazem R.name < C% 100 páginas contendo tuplas satisfazendo R.name < C% N = número de páginas do arquivo de índice com R.name < C%

Exemplo – continuação Custo da busca usando o índice B-Tree B+tree agrupado: = 104 I/Os B+tree não-agrupado (pior caso) : 4 + N = N I/Os B+tree não-agrupado com arquivo de índice ordenado pelo page-id 4 + (custo de carregar e ordenar as N páginas do arquivo de índice pelo page-id) + (custo de ler as 100 páginas de dados) = N([log B-1 N/B] + 1) Custo da busca usando um Scan 1000 I/Os

Conclusão B+tree não-agrupado: dependendo do número N de tuplas satisfazendo a condição de seleção, distribuição destas tuplas nas páginas de dados e o espaço disponível no buffer, a melhor solução é não utilizar o índice e fazer um simples scan do arquivo. Exemplo: B = 3, N = 10: Custo = ([1,74] + 1) = = 164 I/Os B = 3, N = 100 : Custo = ([5,07] + 1) = (6 + 1) = = 1504 I/Os Custo de 1 Scan de R = 1000 I/Os

R tem indice Hash em A Condição de seleção : A = a Custo de se localizar a página do bucket no arquivo de índice: 1 a 2 I/Os (depende se há diretório de ponteiros) Custo para se obter as tuplas satisfazendo a condição de seleção: depende se o índice é agrupado ou não. Se A = chave de R: custo = 1 I/O

Exemplo Select * From R where R.name = Joe M = número de páginas de R = tuplas com R.name = Joe Custo de se encontrar o bucket correspondente a Joe no índice = 1 a 2 I/O Custo de se obter as tuplas no banco de dados = varia de 1 a 100 I/Os (caso o indice não for agrupado) Se as 100 tuplas estão espalhadas em 5 páginas, ordenando-se o indice pelo page-id, pode-se recuperar estas tuplas em 5 I/Os. Logo, o custo total é de custo da ordenação.