Optimização - 1 Optimização de perguntas 1 Processamento de selecções 2 Processamento de junções 3 Manipulação algébrica.

Slides:



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

Arquitetura de Sistemas Operacionais
Complexidade de Algoritmos
Álgebra Relacional Marcelo Mendes Manaus
SQL Structured Query Language (continuação)
SQL Structured Query Language (continuação)
Amintas engenharia.
Técnicas para operações E/S
SISTEMAS DE INFORMAÇÃO
Data Warehouse Tuning O que é um Data Warehouse? Índices Bitmap
Linguagens relacionais
Manipulação algébrica
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.
Gerenciamento de Banco de Dados
Algoritmos para Seleção Simples AULA 16 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
Algoritmos para Seleção Simples
AULA 23 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
Subconsultas ou Consultas Aninhadas
SQL – Noções Gerais Por Márcia Jacyntha N. Rodrigues Lucena
Profa. Aline Vasconcelos
Medida do Tempo de Execução de um Programa
Medida do Tempo de Execução de um Programa
Indexação e Hashing Muitas consultas referenciam apenas uma pequena porção dos registros em uma tabela. Portanto necessitamos ser capaz de localizar estes.
FORMAS DE REPRESENTAÇÃO QUE SERVEM PARA DESCREVER AS ESTRUTURAS DAS INFORMAÇÕES CONTIDAS EM UM BD. Modelos de Dados.
Modelo Relacional Uma base de dados é Uma relação é
Prof. Alfredo Parteli Gomes
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.
Aula prática 6 Vetores e Matrizes
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
Produto cartesiano Mais parâmetros dos dados Algoritmo
Banco de Dados II Prof. Antônio Cordeiro.
Usando Microsoft Access 2010
Aula 03 – BCC202 Análise de Algoritmos (Parte 1) Túlio Toffolo www
Tuning Lílian Simão Oliveira.
INTRODUÇÃO ÁS BASES DE DADOS
Otimização de Consultas em SQL Planos de Execução
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.
Estrutura de decisão Neste tipo de estrutura o fluxo de instruções a ser seguido é escolhido em função do resultado da avaliação de uma ou mais condições.
Conceitos Programas Programação Linguagens de Programação SQL.
Análise de Sistemas de Informação
Sistemas Operacionais
ARQUIVOS.
A abordagem de banco de dados para gerenciamento de dados
Banco de Dados Aplicado ao Desenvolvimento de Software
Linguagem de Manipulação de Dados. 2 Conteúdos Introdução ao SQL Comando SELECT – Extracção de Dados  Pesquisas Simples  Restrições na pesquisa de dados.
BD I / Processamento de Consultas Prof. Altigran Soares da Silva IComp/UFAM.
AULA DE DÚVIDAS 9 de Abril de Especialização  Simplifica-se quando:  especialização é disjunta e  especialização é total e  não há relações.
©Silberschatz, Korth and Sudarshan (Modificado)3.1.1Database System Concepts Capítulo 3: Modelo Relacional Estrutura das Bases de Dados Relacionais Redução.
1 24/4/ :29 FMU – 1. Semestre – Tecnologia – Analise e Desenvolvimento de Sistemas Professor: Eduardo Silvestri Aluno:Clóvis de Oliveira- RA
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.
Sumário 1 SQL Embutida 2 Processamento de Consultas
Banco de Dados I Unidade 6 Processamento de Consultas Otimização Lógica.
1 Structured Query Language (SQL) 4 SQL é uma linguagem normalizada (ANSI) para consultas e actualizações de bases de dados relacionais.
Memória.
Sistemas de Arquivos- Cap4
Sistemas de Arquivos Sistemas Operacionais Profa. Priscila Facciolli
Algoritmo É uma descrição seqüencial ordenada dos passos que devem ser executados de forma lógica e clara, com a finalidade de facilitar a resolução de.
UCSal – Bacharelado em Informática
Plano de Ensino Conceitos e Características Tipos de Banco de Dados
Algoritmos para Seleção AULA 23 Profa. Sandra de Amo GBC053 – BCC.
BD SQL (Insert, Update, Delete) e Select Hayslan Nicolas Colicheski Bucarth – IFRO / 2015 –
Modelagem de Dados Aula 3.
T ABELAS Banco de dados. Banco de dados = Conjunto de dados armazenado eletrônicamente Relação = Conjunto de elementos da mesma estrutura R ELAÇÃO.
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:

Optimização - 1 Optimização de perguntas 1 Processamento de selecções 2 Processamento de junções 3 Manipulação algébrica

Optimização - 2 Parâmetros dos dados  representação de relações em memória: colecção de registos  tuplos empacotados em blocos de disco exclusivos da relação  tuplos dispersos por blocos que contêm tuplos de várias relações, possivelmente associadas  definições para uma relação R  T R : número de tuplos em R  B R : número de blocos capazes de conter R (se estiver empacotada)  T R /B R : número de tuplos por bloco Sistema de armazenamento com blocos de 1024 bytes R com T R = de tuplos de 100 bytes cada B R =

Optimização - 3 Custo de uma operação  Custo em processamento de dados = número de blocos transferidos (lidos ou escritos) entre a memória secundária e a principal  número de acessos de bloco à memória secundária para percorrer uma relação depende organização física escolhida  min: B R ; max: T R ou mais se não se souber que blocos contêm os registos  índices: optimizam selecções  se R possuir índice em A, assume-se que o custo de  A=c (R) é aproximadamente o número de blocos que contenham tuplos com A=c (ignora-se os acessos destinados a ler o próprio índice)

Optimização - 4 Índices  índices agrupadores (clustering) - ex: índices primários (ISAM)  número de tuplos com A=c: N; custo: N*B R /T R  índices não agrupadores - ex: árvore-B usada como índice denso sobre atributos não chave  custo: N, pois só por coincidência dois tuplos estarão no mesmo bloco  tamanho da imagem de um índice num atributo A de R, I R.A, é o número de valores diferentes que A toma em R  assumindo valores equiprováveis, o custo da selecção  A=c (R) é  índice não agrupador: T R /I A  índice agrupador: B R /I A

Optimização - 5 Optimização de selecções  Exemplo do System R  Problema: processar uma pergunta da forma  SELECT A 1, …, A n FROM R WHERE C 1 AND C 2 AND …;  C i ’s podem ser disjunções, negações, inclusões, etc., mas não conjunções  C i casa com um índice sobre A se C i for da forma A=c; System R tende a usar este índice para obter os tuplos e aplicar em seguida as outras condições  as relações podem estar armazenadas por chave primária ou numa estrutura encaixada

Optimização - 6 Exemplo das Encomendas  BD de Encomendas tem três relações CLIENTES( Cnome, Cmorada, Balanco ) ENCOMENDAS( E#, Data, Cnome ) LINHAS( E#, Item, Quantidade )  armazenamento encaixado (CLIENTES(ENCOMENDAS(LINHAS)*)*)*  índice em LINHAS.E# é agrupador, apesar de alguns registos de encomendas e de clientes aparecerem pelo meio  índices nos outros atributos de LINHAS e das outras relações são não agrupadores cliente1 enc1 lin1 lin2 lin3 enc2 lin4 lin5 lin6 lin7 cliente2 enc3 lin8 cliente3 enc4 lin9 lin10 enc5 lin11 lin12 lin13 lin14 lin15 cliente4 enc6 lin16 bloco1bloco2

Optimização - 7 Algoritmo para perguntas simples  abordagem baseada em enumeração de casos, estimação de custos das alternativas viáveis e escolha da mais barata  estratégias  usar um C i para obter os tuplos e seleccioná-los pelas outras condições  examinar todos os tuplos de R e ver quais satisfazem todas as condições  Algoritmo  entrada: pergunta SQL (da forma indicada acima) e informação sobre índices, valores de T e B e tamanhos das imagens dos índices  saída: forma de computar a resposta à pergunta  método:considerar todas as alternativas indicadas abaixo que sejam viáveis, analisando os vários casos possíveis para cada uma delas; escolher a de menor custo

Optimização - 8 Alternativas a considerar 1Obter os tuplos de R que satisfaçam uma condição da forma A=c que case com um índice agrupador existente. Custo estimado= B/I A. 2Usar um índice agrupador num atributo A, tal que uma das condições seja da forma A  c, com  ou >=, para obter os tuplos de R. Custo estimado= B/2. 3Índice não agrupador que case com A=c. Custo= T/I A. 4Se a relação estiver armazenada isolada, ler todos os tuplos. Custo= B. 5Se a relação não estiver isolada, mas existir um índice agrupador (mesmo que não case com nenhum C i, ler todos os tuplos. Custo=B. 6Se existir um índice não agrupador sobre A e uma condição A  c, com  ou >=, usar esse índice para obter os tuplos de R. Custo= T/2. 7Usar um qualquer índice não agrupador para obter os tuplos de R. Custo=T. 8Percorrer todos os blocos que possam conter tuplos de R. Custo>=T.

Optimização - 9 Exemplo  Relativamente à BD de Encomendas  SELECT E# FROM linhas WHERE quantidade >=5 AND item=‘Broa’;  existe índice agrupador para LINHAS em E# e índices não agrupadores em Item e Quantidade; existem 1000 tuplos de LINHAS com 10 tuplos por bloco; tamanho da imagem de Item é 50  Estimativa de custos (T=1000, B=T/10=100, I=50)  (1) e (2) não aplicável(3) T/I= 1000/50=20  (4) não aplicável se relação armazenada com encomendas  (5) B=100(6) Quantidade>=5: T/2=500  (7) e (8) custo >T=1000