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

Documentos relacionados
Processamento e Otimização de Consultas

Processamento e Otimização de Consultas. Msc. Simone Dominico Orientador: Dr. Eduardo Cunha de Almeida PPGINF - UFPR

Tecnologias de Bancos de Dados

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

UTFPR - Universidade Tecnológica Federal do Paraná. Processamento e otimização de consultas

Prof. Daniela Barreiro Claro

Introdução a. π LNAME, FNAME (σ SALARY>C (EMPLOYEE))

MATA60 BANCO DE DADOS Aula 10- Indexação. Prof. Daniela Barreiro Claro

Compilação, Otimização e Execução de Consultas. Profa. Dra. Cristina Dutra de Aguiar Ciferri

ACH2025. Laboratório de Bases de Dados Aula 15. Processamento de Consultas Parte 2 Otimização. Professora: Fátima L. S. Nunes SISTEMAS DE INFORMAÇÃO

Processamento de Consultas. Simone Dominico Orientador: Dr. Eduardo Cunha de Almeida PPGINF - UFPR

Otimização de Consultas Baseada em Custo. Cristina Dutra de Aguiar Ciferri

Processamento da Consulta. Processamento da Consulta

Administração de. José Antônio da Cunha CEFET-RN

Processamento de Produtos ( X )

Processamento de Consultas. Processamento de Consultas. Processamento de Consultas Distribuídas. Otimização de Consultas

Sumário. Etapas do Processamento de Consultas

Principais Desafios dos SGBDDs. Processamento Distribuído de Consultas. Processamento de Consultas. Componentes do Processamento de Consultas

Encontro SQL BH. February Otimização de Consultas no SQL Server

MATA60 BANCO DE DADOS Aula 5- Modelo Relacional. Prof. Daniela Barreiro Claro

Bancos de Dados. 15. Processamento e O3mização de Consultas

Douglas Matheus de Souza Prof. Marcel Hugo, Mestre - Orientador

Escrita ( W ) do Resultado

3 Plano de Execução de Consultas

Bases de Dados. Optimização de planos de execução. Plano de execução

Otimização e Execução de Consultas Caso Centralizado Parse Query

Uso de Índices na Otimização e Processamento de Consultas. Otimização e Processamento de Consultas. Otimização e Processamento de Consultas

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

Tipos de Índices. Profa. Dra. Cristina Dutra de Aguiar Ciferri

23/05/12. Agenda. Introdução. Introdução. Introdução. Álgebra. Relacional. Cálculo. Relacional

Banco de Dados I Módulo VI: Processamento e Otimização de Consultas. (Aulas 1-5) Clodis Boscarioli

OTIMIZAÇÃO DE CONSULTAS RELACIONAIS TRABALHO DE PÓS-GRADUAÇÃO

23/05/12. Consulta distribuída. Consulta distribuída. Objetivos do processamento de consultas distribuídas

MATA60 BANCO DE DADOS Aula 6- Mapeamento Relacional. Prof. Daniela Barreiro Claro

MATA60 BANCO DE DADOS Aula 2- Sistema Gerenciador de Banco de Dados. Prof. Daniela Barreiro Claro

Sumário. Definição do Plano de Execução

MATA60 BANCO DE DADOS Aula 3- Modelo de Entidades e Relacionamentos. Prof. Daniela Barreiro Claro

Álgebra e cálculo relacional. Andre Noel

Etapa III - Implementação de Operadores da Álgebra Relacional; Etapa IV - Comparação experimental de varredura sequencial x acesso aleatório

Sistemas de Bases de Dados 1.º teste (com consulta limitada: 2 folhas identificadas) - Duração: 2 horas

Álgebra Relacional e SQL operações de interesse

Sistemas de Bases de Dados 1.º teste (com consulta limitada: 2 folhas identificadas) - Duração: 2 horas

Álgebra Relacional e SQL

Processamento e Otimização de Consultas

Bases de Dados BDDAD. Linguagem SQL. Comando SELECT Divisão Algébrica. Nelson Freire (ISEP LEI-BDDAD 2015/16) 1/9

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

Tornou-se um padrão de fato para aplicações comerciais, devido a sua simplicidade e performance.

Administração e Optimização de BDs

GBC053 Gerenciamento de Banco de Dados. Plano de Curso e Introdução. Ilmério Reis da Silva UFU/FACOM/BCC

TABELA ENTIDADE LINHA OCORRÊNCIA DA ENTIDADE COLUNA ATRIBUTO DA ENTIDADE

Bases de Dados. Algoritmos. Custo de operação. Algoritmos de selecção. Algoritmo de ordenação. Algoritmos de junção.

O Modelo e a Álgebra Relacional

de Bases de Dados Exame 1

t n e z m r A o o d ç a a d B e L s i u e f F s L e

BANCO DE DADOS DISTRIBUÍDOS e DATAWAREHOUSING

ÁLGEBRA E CÁLCULO RELACIONAL

- SQL Linguagem de Manipulação de Dados

Modelo Relacional. Josino Rodrigues

Ordenação e Busca em Arquivos

Seleção e Otimização de Fontes

Banco de Dados I 3 Modelagem de Dados Lógico e Físico

ROTEIRO Introdução Álgebra e Cálculo Relacional Operações da Álgebra Relacional Classificação de Operadores da Álgebra Relacional Mapeamento AR -> SQL

Banco de Dados I. Aula 16 - Prof. Bruno Moreno 04/11/2011

Sistemas de Gestão de Bases de Dados e-fólio A. Resolução e Critérios de Correção

INSTITUTO SUPERIOR TÉCNICO Administração e Optimização de Bases de Dados

MATA60 BANCO DE DADOS Aula 4- Modelo de Entidades e Relacionamentos Estendido. Prof. Daniela Barreiro Claro

mod._1_teoria_sistemas de bancos de dados.doc

ANÁLISE E PROJETO DE BANCO DE DADOS

Aula 11 SBD SQL Parte 3. Profa. Elaine Faria UFU

Roteiro. Álgebra Relacional e Cálculo Relacional. BCC321 - Banco de Dados I. Introdução. Ementa. Posicionamento. Introdução

GBC053 Gerenciamento de Banco de Dados Processamento de Consultas

Processamento Cosequencial: Ordenação Interna e Externa. Thiago A. S. Pardo Leandro C. Cintra M.C.F. de Oliveira Cristina D. A.

Modelo Entidade-Relacionamento (E-R)

ALGEBRA RELACIONAL. Álgebra Relacional Conjunto básico de operações para o Modelo Relacional O resultado é uma relação

Banco de Dados I Módulo III: Linguagens de Consulta. (Aula 1) Clodis Boscarioli

Autômatos e Linguagens

modelo introduzido por E. F. Codd Meados da década de 70: protótipos. INGRES (UC Berkeley, 73 77) System R (IBM Research at San Jose, 74 78)

Bancos (Bases) de Dados Aula #7 Álgebra Relacional

Banco de Dados. Aula 8 - Prof. Bruno Moreno 16/09/2011

Introdução à Geração de Código

1º Teste Sem consulta

Bacharelado em Ciência da Computação UFU Disciplina GBC053 Gerência de Banco de Dados Profa. Sandra de Amo

GBC043 Sistemas de Banco de Dados Álgebra e Cálculo Relacional. Ilmério Reis da Silva UFU/FACOM

Bancos de Dados IV. Tuning de Bancos de Dados. Rogério Costa

Universidade de Santa Cruz do Sul UNISC Departamento de informática COMPILADORES. Síntese. Prof. Geovane Griesang

Há vários algoritmos para processar junções nested-loop join block nested-loop join indexed nested-loop join merge-join hash-join

Banco de Dados Prof. Célio R. Castelano Página 1 de 9. Álgebra Relacional

Oracle Database: Fundamentos de SQL e PL/SQL

Compiladores I Prof. Ricardo Santos (cap 1)

Universidade Federal de Goiás Bacharelado em Ciências da Computacão Compiladores

L Q S m e g a u g n Li A

Fundamentos de Banco de Dados e Modelagem de Dados

Modelo Relacional: Banco de Dados: coleção de relações cada relação tem um nome único.

COMPILAÇÃO. Ricardo José Cabeça de Souza

BANCO DE DADOS. Araújo Lima. Ago / Araújo

Unipar Universidade Paranaense Disciplina: Banco de Dados II 3ª Série Profª: Késsia Marchi Profa. Késsia Marchi

Transcrição:

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

Introdução a Otimização 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. 2

Introdução a Otimização Passos principais Tradução da consulta SQL para a álgebra relacional Otimização do resultado Estratégias de otimização Otimização baseada em heurísticas Otimização baseada na estimativa de custo da consulta 3

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

Otimização 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 Considere a consulta: 5 Q

Exemplo de Tradução de uma consulta SQL 6 Q

Otimização Consultas são representadas internamente na forma de uma árvore ou grafo Árvores de consulta são preferidas para a otimização pois determinam a ordem de execução das operações Grafos de consulta indicam apenas as operações e os respectivos operandos envolvidos portanto, existe apenas um grafo correspondente a cada consulta Regras heurísticas são usadas para alterar a representação interna (árvore ou grafo) de uma consulta de modo a otimizar a sua execução Por exemplo: operações de projeção e seleção são aplicadas antes de uma junção O plano de execução gerado determina a ordem em que as operações serão executadas e os recursos a serem utilizados (por ex., índices) 7

Exemplo Consulta Para cada projeto localizado em Stafford, recupere o número do projeto, o número do departamento responsável e o último nome, o endereço e a data de nascimento do gerente do departamento. Consulta em SQL SELECT P.PNUMBER, P.DNUM, E.LNAME, E.ADDRESS, E.BDATE FROM PROJECT AS P, DEPARTMENT AS D, EMPLOYEE AS E WHERE P.DNUM=D.DNUMBER AND D.MGRSSN=E.SSN AND P.PLOCATION= STAFFORD ; Álgebra Relacional 8

Arvore Canônica 9

Arvore de consulta 10

Arvore de consulta 11

Arvore de consulta 12

Arvore de consulta 13

Otimização 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. 14

Regras Heurísticas 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)) 15

Regras Heurísticas 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 16

Regras Heurísticas 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) 17 Q

Regras Heuristicas 18

Regras Heuristicas 19

Regras Heuristicas 20

Análise 21

Exercício Dado a SQL abaixo, faça a Algebra Relacional correspondente: SELECT e.ultimo_nome FROM empregrado e, trabalha t, projeto p WHERE nome_projeto = arquivo X AND p.nro_projeto = t.nro_projeto AND e.nro_empregado = t.nro_empregado Algebra Relacional ultimo_nome ( nome_projeto= arquivo and nro_projeto=nro_projeto and nro_empregado=nro_empregado (empregado trabalha projeto) 22

Exercício Arvore Canônica arvore 1 23

Exercício Conversão da Arvore de Consulta 24

Exercício Conversão da Arvore de Consulta 25

Exercício Conversão da Arvore de Consulta 26

Exercício Conversão da Arvore de Consulta 27

Estimativa de custo 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 28

Estimativa de custo 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 29

Estruturas de Acesso 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 30

Algoritmos para operação SELECT 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 31

Algoritmos para operação SELECT Métodos de Busca com índice Índice primário para igualdade Se houver uma comparação de igualdade sobre um atributochave 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) 32

Algoritmos para operação SELECT 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 33

Algoritmos para operação SELECT 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. 34

Algoritmos para operação JOIN É 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] É mais eficiente usar a relação com menos tuplas como externa 35

Algoritmos para operação JOIN Método de Junção Sort-Merge (ordenação-fusã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. 36

Algoritmos para operação JOIN Para delimitar qual tabela participa do laço externo Fator de Seleção da Junção É a porcentagem de registros de um arquivo que sofrerá a junção com os registros do outro. 3000 disciplinas e 50 candidatos 1. DISCIPLINA X CANDIDATO Recupera cada registro de Disciplina e usa o índice para recuperar os candidatos. Não haverá registro para disciplinas que não tenham candidatos 2. CANDIDATO X DISCIPLINA Recupera cada registro de candidato e depois usa o índice para encontrar a disciplina correspondente. FS=1 Assim, tanto o menor arquivo, quanto o maior fator de seleção devem ser usados no laço externo. 37 E

Otimização nos Bancos de Dados comerciais 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 PostgreSQL Otimizador a maior parte baseado em custos mas usa também heuristicas IBM DB2 Otimizador baseado em custo e utiliza uma estrutura extensível baseada em regra 38

Exercício 39

www.dcc.ufba.br/~dclaro Disciplina: MATA60 (2016.1) Material: Cristina Ciferri Semantic Formalisms and Applications Research Group Facebook: /formasresearchgroup Twitter: /formasresearch FORMAS - UFBA