Prof. Daniela Barreiro Claro

Documentos relacionados
Banco de Dados I Módulo V: Indexação em Banco de Dados. (Aulas 4) Clodis Boscarioli

MATA60 BANCO DE DADOS Aula: Otimização. Prof. Daniela Barreiro Claro

Processamento e Otimização de Consultas

Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri. Banco de Dados Processamento e Otimização de Consultas

Chaves. Chaves. O modelo relacional implementa dois conhecidos conceitos de chaves, como veremos a seguir:

Algoritmos para Processamento e Otimização de Consultas. Adriano Douglas Girardello Ana Paula Fredrich Tiago Alexandre Schulz Sippert

Unidade 5 Armazenamento e Indexação

Uma expressão básica em SQL consiste em três cláusulas: select, from e where.

BDII SQL Junção Revisão 8

Possui como idéia central a divisão de um universo de dados a ser organizado em subconjuntos mais gerenciáveis.

Modelo Relacional - Manipulação

6. Programação Inteira

Álgebra. SeM MiSTéRio

Banco de Dados I Módulo V: Indexação em Banco de Dados. (Aulas 1, 2 e 3) Clodis Boscarioli

Árvores B. Hashing. Estrutura de Dados II Jairo Francisco de Souza

Banco de Dados. Otimização de consultas. Prof. Joao Eduardo Ferreira Prof. Osvaldo Kotaro Takai. Última atualização: 15 de maio de 2006

Exercícios com o intuito de cobrar todos os assuntos vistos em sala, relativos à Modelagem Conceitual, SQL, PL e XML. 1ª ETAPA

Resolução de sistemas lineares

Definição do Plano de Execução. Estimativas sobre os Dados

Modelo Entidade-Relacionamento

Banco de Dados. Um momento crucial na organização dos dados é a forma com que cadastramos estes dados, a estrutura de armazenamento que criamos.

Lista 1 para a P2. Operações com subespaços

Fernando Albuquerque - fernando@cic.unb.br. Bancos de Dados. Fernando Albuquerque fernando@cic.unb.br

c. Técnica de Estrutura de Controle Teste do Caminho Básico

Prof. Daniela Barreiro Claro

Sistemas Operacionais Arquivos. Carlos Ferraz Jorge Cavalcanti Fonsêca

Regras Métodos Identificadores Variáveis Constantes Tipos de dados Comandos de atribuição Operadores aritméticos, relacionais e lógicos

Banco de Dados Espaciais. Banco de Dados Espaciais

ANÁLISE DOS RESULTADOS DOS PROGRAMAS DE APOIO ÀS PMEs NO BRASIL Resumo Executivo PARA BAIXAR A AVALIAÇÃO COMPLETA:

Disciplina: Unidade III: Prof.: Período:

PostgreSQL Performance

CEFET.PHB - PI. Plano de Ensino. Banco de Dados. Plano de Ensino. Plano de Ensino. Plano de Ensino - Conteúdo. Plano de Ensino - Conteúdo

Tarefa Orientada 14 Subconsultas

Arquitetura de SGBD Relacionais Previsão de Seletividade

Java Como Programar, 8/E

Roteiro 9 - SQL Básico: chave estrangeira, operadores de comparação e operadores booleanos

Junções e Índices em Tabelas

SISTEMAS DE INFORMAÇÃO GERENCIAIS

Banco de Dados. Marcio de Carvalho Victorino Exercícios SQL

Modelo Relacional. 2. Modelo Relacional (Lógico)

LÓGICA DE PROGRAMAÇÃO. Vitor Valerio de Souza Campos

CAPÍTULO 2. BANCOS DE DADOS DISTRIBUÍDOS

Capítulo 4 Gerenciamento de Memória

IF685 Gerenciamento de Dados e Informação - Prof. Robson Fidalgo 1

Figure 2 - Nós folhas de uma árvore binária representando caracteres ASCII

TRABALHO DE BANCO DE DADOS POSTGRES MINI-MUNDO: BD PARA GERENCIAMENTO DE UNIDADES DE CONSERVAÇÃO

Exercícios Adicionais

Este material tem como propósito lhes dar as explicações mais importantes sobre base de dados, relevantes para o uso do GeneXus.

Estruturas de Armazenamento e Indexação. Rafael Lage Moreira Barbosa

5 Instrução e integração

implementação Nuno Ferreira Neves Faculdade de Ciências de Universidade de Lisboa Fernando Ramos, Nuno Neves, Sistemas Operativos,

Inteligência Artificial Prof. Marcos Quinet Pólo Universitário de Rio das Ostras PURO Universidade Federal Fluminense UFF

4- PROJETO DE BANCO DE DADOS

Introdução às Bases de Dados

Notas da Aula 6 - Fundamentos de Sistemas Operacionais

O planejamento do projeto. Tecnologia em Gestão Pública Desenvolvimento de Projetos Aula 8 Prof. Rafael Roesler

Hashing (Tabela de Dispersão)

Módulo 12 Gerenciamento Financeiro para Serviços de TI

Gerenciamento de memória

DESENVOLVIMENTO DE SOFTWARE

Análise de Pontos de Função. Por Denize Terra Pimenta

Banco de Dados Oracle 10g: Introdução à Linguagem SQL

BANCO DE DADOS DISTRIBUÍDOS e DATAWAREHOUSING

Guia de utilização da notação BPMN

SOP - TADS Sistemas de Arquivos Cap 4 Tanenmbaum

Especificação Operacional.

Manual do Usuário - ProJuris Web - Biblioteca Jurídica Página 1 de 20

JUROS SIMPLES. Onde: n é o número de períodos (number of periods) ou prazo em dias; i é o índice da taxa de juros (index) anual;

Exercícios Teóricos Resolvidos

Unidade 5: Sistemas de Representação

Tecnologia da Informação Prof. Mário Henrique de Souza Pardo Resumo Aula 4

SQL Linguagem de Manipulação de Dados. Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

Capítulo 2. Processos de Software Pearson Prentice Hall. Todos os direitos reservados. slide 1

Microsoft Access INTRODUÇÃO. Sumário INTRODUÇÃO INTRODUÇÃO INTRODUÇÃO INTRODUÇÃO. O que é Banco de Dados?

1. Os métodos Não-Paramétricos podem ser aplicados a uma ampla diversidade de situações, porque não exigem populações distribuídas normalmente.

Sistema de Memórias de Computadores

Bases de Dados 2007/2008 Exame

Linguagens de Programação

Banco de Dados Orientado a Objetos

UNIVERSIDADE FEDERAL DE SANTA MARIA - UFSM COLÉGIO AGRÍCOLA DE FREDERICO WESTPHALEN BANCO DE DADOS II

Sumário. 1 Introdução. Demonstrações Contábeis Decifradas. Aprendendo Teoria

Sistemas de Apoio à Decisão

Testedegeradoresde. Parte X. 38 Testes de Ajuste à Distribuição Teste Chi-Quadrado

Algoritmos e Estrutura de Dados III. Árvores

ACCESS BÁSICO. Exercício 1 NCE/UFRJ. 1. O que são bancos de dados?...

Técnicas de Normalização por Phaser

AULA 15 Plugin Preenchimento de Células

SIMULADO DO TESTE DE RESOLUÇÃO DE PROBLEMAS

Algoritmos de pesquisa. Tabelas de dispersão/hash

ADMINISTRAÇÃO DE BANCOS DE DADOS MÓDULO 13

Testando e Comparando Valores

NOME SEXO CPF NASCIMENTO SALARIO

Módulo 4. Construindo uma solução OLAP

Normas Internacionais de Avaliação. Preço Custo e valor Mercado Abordagem de valores Abordagens de avaliação

BANCO DE DADOS aula 6 álgebra relacional -

INE5403 FUNDAMENTOS DE MATEMÁTICA DISCRETA

Prof.: Clayton Maciel Costa

Persistência e Banco de Dados em Jogos Digitais

Transcrição:

Prof. Daniela Barreiro Claro

SQL, SQL3 e OQL são linguagens declarativas O SGBD deve processar e otimizar estas consultas antes delas serem efetivamente executadas Uma consulta possui muitas estratégias de execução possíveis O processo de escolha destas estratégias é chamado de OTIMIZAÇÃO. Prof. Daniela Barreiro Claro 2

Um SGBD relacional mantém informações sobre cada tabela e índice. Estas informações são armazenadas nos CATALOGOS DO SISTEMA Informações do Catálogo Cardinalidade Numero de tuplas de cada tabela R Tamanho Numero de paginas de cada tabela R Cardinalidade do Indice Numero de valores distintos para cada índice I Tamanho do Indice Numero de paginas para cada índice I Altura do Indice Numero de níveis não-folhas para cada índice I Faixa de Indice O mínimo valor de chave presente e o máximo valor de chave presente para cada índice I Prof. Daniela Barreiro Claro 3

Caminhos de Acesso É uma forma de recuperar tuplas de uma tabela através da: Varredura de arquivos Um índice mais uma condição de seleção Considerando uma condição attr op valor Um índice satisfaz uma condição de seleção se puder ser utilizado para recuperar apenas as tuplas que satisfaçam as condiçoes Um índice hash satisfaz uma seleção se houver um termo attr = valor Um índice de árvore satisfaz uma seleção se houver um termo attr op valor para cada atributo em um prefixo da chave de pesquisa do índice <a> e <a,b> são prefixos da chave <a,b,c>, mas <a,c> e <b,c> não são. Prof. Daniela Barreiro Claro 4

Considerando: Marinheiros (id_marin:integer, nome_marin:string, avaliacao:integer, idade:real) Reservas (id_marin:integer, id_barco:integer, dia:date, nome_resp:string) Quais os caminhos de acesso possíveis dado o índice <nome_resp, id_barco, id_marin> Caso 1: nome_resp= Joe id_barco = 5 id_marin=3 Caso 2: nome_resp= Joe id_barco = 5 dia=28/12/2012 Caso 3: id_barco = 5 dia=28/12/2012 Se usar um índice hash? Se usar um índice de árvore? Quais os caminhos de acesso que não são possíveis? Prof. Daniela Barreiro Claro 5

Usando um Indice Hash Somente as tuplas que satisfaçam a condição igual nome_resp= Joe id_barco = 5 id_marin=3 Se a condição de seleção for nome_resp= Joe id_barco = 5 ou alguma outra sobre data Este índice não satisfaz ou seja, ele não pode ser usado para recuperar as tuplas que satisfaçam estas condições Usando um Indice árvore B+ Se fosse B+, o índice satisfaria tanto a condição nome_resp= Joe id_barco = 5 id_marin=3 quanto a condição nome_resp= Joe id_barco = 5 Porém não satisfaria id_barco = 5 id_marin=3 As tuplas estão ordenadas por nome_resp Prof. Daniela Barreiro Claro 6

Seletividade de um caminho de acesso É o numero de paginas recuperadas (páginas de índices mais páginas de dados) se usarmos este caminho de acesso para recuperar todas as tuplas desejadas Se uma tabela contiver um índice que satisfaça uma seleçao há dois caminhos de acesso Utilizando indice Varredura do arquivo de dados Caminho de acesso mais seletivo É o que recupera o menor número de páginas Minimiza o custo da recuperação de dados Prof. Daniela Barreiro Claro 7

Select cpf from candidato where cpf= 859 ; Analisador Léxico, cpf= 859 Sintatico ( cpf= 859 ( e (Candidato)) Validação cpf Otimizador cpf= 859 ; usar indice 1 Daniela Claro, 859, Salvador Pedro Antonio, 123, Rio de J Dados candidato Saida da Consulta 859 Mecanismo de Execução candidato;indice1 cpf disciplina;indice2-codigo Estatisticas 8 Prof. Daniela Barreiro Claro

O sistema tenta encontrar uma expressão que seja equivalente à expressão dada, porém cuja execução seja mais eficiente. Para isso a consulta é separada em blocos Estes blocos podem ser traduzidos em operadores algébricos e assim otimizados Os operadores algébricos, como SELECT podem ser executados por diversos algoritmos. Estas escolhas dependem do uso ou não de índices, da complexidade do operador, etc Prof. Daniela Barreiro Claro 9 Q

SELEÇÃO Dada uma seleção na forma σ R.atrib op valor (R) Sem índice em R.atrib Varre R Com índice Pode-se usar o índice desde que satisfaçam a condição de seleção Regra geral Se mais que 5% das tuplas forem recuperadas no resultado é melhor varrer toda a R Prof. Daniela Barreiro Claro 10

PROJEÇÃO Dada uma projeção na forma π R.atrib1, R.atrib2 (R) Custo da projeção é garantir que nenhuma duplicata apareça no resultado Se tiver um índice cuja chave de pesquisa contenha todos os campos retidos na projeção Pode-se ordenar as entradas de dados no índice em vez dos próprios registros dos dados A disponibilidade de índices apropriados pode levar a planos menos custosos do que ordenar para eliminar duplicatas Prof. Daniela Barreiro Claro 11

Junções são operações custosas e muito comuns Dada a junção Reserva<> R.id_marin=M.id_marin Marinheiro Considere um índice em M.id_marin Varre Reserva e para cada tupla usar o índice para examinar em Marinheiros as tuplas que satisfaçam as condiçoes Considere que NÃO há um índice em M.id_marin Neste caso pode-se ordenar ambas as tabelas sob a coluna de junção e então varre-las para encontrar as correspondencias Isso é chamado de junção sort-merge Prof. Daniela Barreiro Claro 12

Junçao Muitas vezes o custo de junçao SORT-MERGE Nao requer um índice pré-existente Por que usar os índices nos loops aninhados? É incremental Ou seja, se uma seleção adicional permitir considerar apenar um subconjunto de Reserva, pode-se evitar calcular a junçao completamente Considere que somente o barco=101 em Reserva e que há poucas reservas para este barco Para cada tupla de Reserva examina Marinheiro e FIM. Se usar sort-merge tem que varrer toda a tabela de Marinheiro Prof. Daniela Barreiro Claro 13

É responsavel pela identificação de um plano eficiente de execução O otimizador gera planos alternativos e escolhe o plano de menor custo. Tarefas do otimizador Enumerar planos alternativos para avaliação da expressão algebrica Um subconjunto pois o numero de planos possiveis é muito grande Avaliar o custo de cada plano enumerado, escolhendo o plano com o custo estimado mais baixo. Prof. Daniela Barreiro Claro 14

Métodos de Busca sem índice Busca Linear Varre todos os registros e testa para ver se satisfazem a condição de seleção. Lento, mas se aplica a qualquer arquivo Busca binária Se o arquivo for ordenado e a condição de seleção for uma comparação de igualdade Prof. Daniela Barreiro Claro 15

Métodos de Busca com índice Índice primário para igualdade Se houver uma comparação de igualdade sobre um atributo-chave com índice primário, utiliza-se o índice para apanhar um único registro cpf = 859 (candidato) Índice primário para não igualdade Se a condição envolver >,<, usa o índice para encontrar o registro de igualdade e depois recupera todos os registros seguintes do arquivo ordenado. cpf > 859 (candidato) Prof. Daniela Barreiro Claro 16

Métodos de Busca com índice Indice primário e igualdade para atributo não chave Se a condição envolver um atributo não chave, use o índice para recuperar os registros. Vários registros podem ser encontrados. Indice é usado para posicionar os registros coddisciplina = mata60 (candidato) Indice secundário com igualdade Com a condição de igualdade, as seleções podem usar um índice secundário Prof. Daniela Barreiro Claro 17

Métodos de Busca para Seleção complexa Seleção conjuntiva utilizando índice individual Verifica se o atributo satisfaz cada uma das condições simples cpf = 859 AND cidade = Salvador (candidato) Seleção conjuntiva utilizando índice composto Se existir um índice composto este índice será usado Uma condição disjuntiva OR é muito mais difícil de se processar É a união dos registros que satisfazem as condições individuais. Prof. Daniela Barreiro Claro 18

É uma das que mais consome tempo no processamento da consulta Junção: R A=B S Método de Junção de Laços Aninhados (nested loop) Para cada registro r em R(laço externo) recupere cada registro s de S(laço interno) e teste se os dois satisfazem a condição de junção r[a]=s[b] Este algoritmo não usa índices É mais eficiente usar a relação com menos tuplas como externa Prof. Daniela Barreiro Claro 19

Método de Junção Sort-Merge (ordenaçãofusão) Se ambos os registros em R e S forem classificados (ordenados) fisicamente pelos valores de A e B, esta junção é muito mais eficiente. Estes arquivos são unidos simultaneamente Método de Junção Hash Os registros são particionados utilizando a mesma função hash. Se as tuplas r e s satisfazem a condição de junção, elas terão o mesmo valor para os atributos de junção. Prof. Daniela Barreiro Claro 20

Há duas técnicas principais para a implementação da otimização das consultas Baseada em regras heurísticas Estimativa do custo Geralmente, estas técnicas são combinadas em um otimizador de consulta. Prof. Daniela Barreiro Claro 21

Regras heurísticas são utilizadas para transformar um árvore de consulta em uma árvore equivalente Normalmente a nova árvore é mais eficiente. Há várias regras de equivalência para transformar estas consultas, dentre elas: 1. Operações de Seleção Conjuntiva podem ser decompostas c1 and c2 and c3 (R) c1 ( c2 ( c3 (R))) 2. Comutatividade das Operações de Seleção c1 ( c2 (R)) c2 ( c1 (R)) Prof. Daniela Barreiro Claro 22

3. Comutatividade de Join e Natural Join R S S R e R S S R 4. Comutatividade da Seleção e Join: Se todos os atributos da condição c forem atributos de apenas uma relação R c (R S) ( c (R)) S São regras de equivalência que podem ser utilizadas para criar planos equivalentes Prof. Daniela Barreiro Claro 23

Uma das principais técnicas heurísticas é Operações SELECT e PROJECT antes de aplicar o JOIN As operações SELECT e PROJECT reduzem o tamanho de um arquivo Suponha a seguinte consulta: nome_cliente ( cidadeagencia= Brooklyn (agencia conta depositante) Sabendo que só existem 4 agências no Brooklyn nome_cliente ( cidadeagencia= Brooklyn (agencia)) (conta depositante) Prof. Daniela Barreiro Claro 24 Q

Um otimizador deve estimar e comparar os custos da execução de uma consulta As heurísticas são utilizadas para reduzir os custos da otimização Mesmo com o uso de heurísticas, a otimização da consulta baseada em custo impõe uma sobrecarga substancial ao processamento da consulta Prof. Daniela Barreiro Claro 25

Informações do catálogo O tamanho de cada arquivo Número de registros Tamanho médio dos registros Número de valores distintos e a seletividade Otimização baseada em custo considera a ORDEM DAS JUNÇÕES Suponha r1 r2 r3 Existem 12 ordens de junções diferentes para r1, r2 e r3 (r1 r2 r3) r1 (r2 r3) (r1 r2) r3... Acrescente mais r4 r5 Prof. Daniela Barreiro Claro 26

Realize operações de seleção o mais cedo possível Com cautela; há casos que pode ser pior o desempenho ɵ (r s), onde a condição ɵ refere-se apenas a atributos em s. Se r for extremamente pequeno em comparação com s Se houver índices sobre atributos de s mas nenhum índice sobre atributos usados em ɵ, neste caso seria uma má idéia usar a seleção mais cedo, ou seja, diretamente sobre s Prof. Daniela Barreiro Claro 27

Realize operações de projeção mais cedo Normalmente é melhor realizar seleção antes projeção Sempre verificar com cautela Prof. Daniela Barreiro Claro 28

Oracle Trabalha com as duas técnicas: regras heurísticas e estimativa de custos Desenvolvedor pode dar dicas ao otimizador Sugere atualizar as estatísticas, mudanças na estrutura, criação de índices Indices de mapa de bits PostgreSQL Otimizador a maior parte baseado em custos Diversos tipos de indices, dentre os quais arvores R Quando um numero de tabelas em um bloco for muito grande, o algoritmo dinamico do System R é muito dispendioso PostgreSQL utiliza os algoritmos genéticos neste caso Casos bem sucedidos com cerca de 45 tabelas Prof. Daniela Barreiro Claro 29