Sistemas de Informação e Bases de Dados 2012/2013. Índices. Alberto Sardinha

Documentos relacionados
Bases de Dados. Índices. Discos. transferência rápida e aos bytes. transferência lenta e em blocos (512B ~ 4KB) memória. disco BD / aplicação

Bases de Dados. Índices. Discos. transferência lenta. transferência rápida e em blocos (512B ~ 4KB) e aos bytes. memória.

Bases de Dados. Remoções em árvores B + Remoção em árvores B +

Sistemas de Informação e Bases de Dados 2012/2013. Linguagem SQL

Bases de Dados 2013/2014 Armazenamento e Índices. Helena Galhardas. Sumário

Sistemas de Informação e Bases de Dados 2012/2013. Restrições de Integridade em SQL

Dois parâmetros essenciais t T tempo de transferência de um bloco. assume-se igual para operações de leitura e escrita

Sistemas de Informação e Bases de Dados 2012/2013. Stored Procedures e Triggers

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

Bases de Dados. Apresentação da disciplina. Programa

Sistemas de Informação e Bases de Dados 2012/2013. Transações. Alberto Sardinha

Chapter 11: Indexing and Hashing. José Alferes Sistemas de Bases de Dados - ISCTEM janeiro de 2017

Princípio dos anos 70 IBM desenvolve a linguagem Sequel para o System R. Renomeada para SQL (Structured Query Language)

A cláusula order by permite ordenar tuplos exemplo: listar por ordem alfabética os nomes dos clientes com empréstimo na agência de Perryridge

Modelo Relacional. Josino Rodrigues

3 Plano de Execução de Consultas

Princípio dos anos 70 IBM desenvolve a linguagem Sequel para o System R. Renomeada para SQL (Structured Query Language)

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

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

Bases de Dados. Junção de relações. Junção de relações

Administração e Optimização de BDs

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

Sistemas de Informação e Bases de Dados 2012/2013. Linguagem SQL

Ordenação de tuplos order by

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

Organização de Arquivos

Sistemas de Informação e Bases de Dados 2012/2013. Modelo Relacional. Alberto Sardinha 2012 IST

Aula 10 BD 1 SQL Parte 2. Profa. Elaine Faria UFU

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

Princípio dos anos 70 IBM desenvolve a linguagem Sequel para o System R. Standards ISO e ANSI SQL-86, SQL-89, SQL-92, SQL:1999, SQL:2003

se a transação falhar entre os 3 passos 4 6, os passos 1 3 ficam sem efeito 4 read(b) Consistência

Views. uma view é uma tabela virtual. não existe fisicamente na BD. é definida à custa de outras tabelas ou views. CREATE VIEW <nome> AS <query>;

Reindexação Automática em SGBDs Relacionais

Flickr, shindotv/ / BASES DE DADOS. Laboratórios de Informática João Paulo Barraca, André Zúquete, Diogo Gomes

Introdução às funções e procedimentos. SQL suporta funções e procedimentos úteis com tipos de dados específicos

Chapter 12: Query Processing. José Alferes Sistemas de Bases de Dados - ISCTEM janeiro de 2017

15 - Introdução às Bases de Dados

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

BANCO DE DADOS Índices em BD Árvores B+

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

SQL: Vistas, Indices, Autorização, Restrições

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

11/8/2010. Tópicos. Organização e Indexação de Dados em Memória Secundária

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

Bases de Dados 2013/2014 Álgebra Relacional. Helena Galhardas 2013 IST. Bibliografia. Raghu Ramakrishnan, Database Management Systems, Cap.

Bases de Dados. Parte VIII. Organização Física dos Dados

se a transacção falhar entre os passos 4 6, os passos 1 3 ficam sem efeito

Índices. SCE-203 Algoritmos e Estruturas de Dados II

PostgreSQL Performance

Bases de Dados 2007/2008 Exame

Importar e Exportar Dados

U.C Sistemas de Gestão de Bases de Dados Resolução e Critérios de Correção INSTRUÇÕES

Módulo 5. Arquitetura do SQL Server. Estruturas de Armazenamento. Armazenamento físico e lógico. Páginas

ARMAZENAMENTO E PROCESSAMENTO DE BANCOS DE DADOS RELACIONAIS

de Bases de Dados Exame 2

SQL (Tópicos) Structured Query Language

Implementação de Sistemas de Arquivos. Na Aula Anterior... Esquema do Sistema de Arquivos. Nesta Aula 31/10/2016. Estrutura de Baixo Nível de um Disco

OTIMIZAÇÃO DE CONSULTAS - MYSQL. Prof. Antonio Almeida de Barros Junior

As restrições de integridade garantem a consistência da BD exemplos


Disciplina : Gerência de Banco de Dados Semestre Professora : Sandra de Amo. Lista de Exercícios 4 - Consultas SQL

Formação de DBAs SQL Server 2008 Parte 6: Gerenciamento de Performance

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

ORGANIZAÇÃO DE COMPUTADORES CAPÍTULO4: MEMÓRIAPRINCIPAL

Árvores B. Árvore B (ou melhor B+)

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

SQL Linguagem de Manipulação de Dados SQL DML SQL DML. Exemplo Modelo Relacional. Exemplo ME-R SQL DML CONTINUAÇÃO...

Bases de Dados 2012/2013 Funções/procedimentos e triggers. Helena Galhardas 2012 IST. Bibliografia. Manual referência PostgreSQL

Bases de Dados 2007/2008 Exame

Banco de Dados I Introdução SQL

CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA. Full Text Searching

Roteiro. SQL: Visões. Suporte de SQL para OLAP SELECT. Detalhando GROUP BY SQL DML CONTINUAÇÃO CONSULTAS AVANÇADAS. Consultas Avançadas Visões

ü Capítulo 4 Livro do Mário Monteiro ü Introdução ü Hierarquia de memória ü Memória Principal ü Memória principal ü Memória cache

Avisos. SQL: Visões. Roteiro SELECT. Suporte de SQL para OLAP SQL DML CONTINUAÇÃO CONSULTAS AVANÇADAS. Cronograma das próximas aulas

Álgebra Relacional operações adicionais. Encontrar tuplos que obedecem a uma dada relação questões do tipo: quem já leu todos os livros que eu já li?

Bibliografia. Bases de Dados 2012/2013 Modelo Relacional. Helena Galhardas. Raghu Ramakrishnan, Database Management Systems, Cap. 3 10/2/ IST

BANCO DE DADOS II Prof. Ricardo Rodrigues Barcelar

Bases de Dados. Álgebra Relacional. Selecção (σ) Seleccionar os registos que satisfazem uma condição exemplo: empréstimos da agência de Perryridge

Administração e Optimização de BDs

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

Índices. 1. Introdução. Universidade Federal de Pelotas Departamento de Informática Bacharelado em Ciência da Computação Banco de Dados I

Consistem num conjunto de apontadores para instâncias especificas de cada relação.

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

Introdução a Bancos de Dados

Tecnologias de Bancos de Dados

Bases de Dados. Conversão para Modelo Relacional. Diagrama E-A. IST DEI Bases de Dados

Tópicos Avançados de Bases de Dados

Tabelas. Banco de Dados I MySQL

Cap. 5 Indexação Baseada em Hashing

BANCO DE DADOS. Vinícius Pádua

SQL CREATE DATABASE. MySQL, SQL Server, Access, Oracle, Sybase, DB2, e outras base de dados utilizam o SQL.

Sistemas de InformaçBases de Dados 2012/2013. Desenvolvimento de Aplicações com Bases de Dados

Tarefa Orientada 17 Scripts

Aula 06 Sistemas Embarcados LT38C

T-SQL Mitos. Vamos criar uma tabela para os nossos exemplos e, em seguida, comparar planos de execução. Mãos à obra.

Aula 9 BD 1 SQL Parte 1. Profa. Elaine Faria UFU

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

Transcrição:

Sistemas de Informação e Bases de Dados 2012/2013 Índices Alberto Sardinha

Sumário Índices Criação de Índices em SQL Exemplos 2012 Ins)tuto Superior Técnico 1

Bibliografia Raghu Ramakrishnan, Database Management Systems, 3ª edição. Cap 8 2012 Ins)tuto Superior Técnico 2

Problema BD com muitos registos precisa de espaço! BD com muitos registos pode demorar muito tempo para achar uma resposta! Resposta de uma consulta SQL 2012 Ins)tuto Superior Técnico 3

Discos (HD) transferência lenta transferência rápida e em blocos (512B ~ 4KB) e aos bytes memória disco BD / aplicação IST DEI Bases de Dados

Armazenar tudo em memória: porque não? Memória RAM É volátil É limitado Tempo de acesso muito mais rápido que um HD Discos (HD) É persistente Há mais espaço Tempo de acesso é mais lento que a memória RAM Preços (p.e. dados Nov 2011, obtidos numa loja de componentes PC) 4 GB RAM: 20 = 5 /Gb 2 TB HD SATA: 100 = 0.05 /Gb HD ~ 100 x mais barato 2012 Ins)tuto Superior Técnico 5

Acesso aos dados Os dados são transferidos entre o disco e a memória em blocos É objectivo de qualquer SGBD minimizar o número de transferências de blocos entre disco e memória IST DEI Bases de Dados

Índices Muitas vezes, pretendemos chegar aos registos pelos valores de um ou mais campos Procurar todos os alunos do IST do DEI Procurar todos os alunos de média superior a 14 no DEG Índices: estruturas de dados alternativas que nos permitem responder a estes pedidos de forma eficiente. 2012 Ins)tuto Superior Técnico 7

Formato registo índice Índices permitem acelerar o acesso aos dados p.ex. índice remissivo de um livro assunto é a chave de procura (search key) nº da página é o apontador Um índice contém registos na forma chave de procura! apontador(es) para registo(s)" em geral é muito mais pequeno que a tabela indexada 2012 Ins)tuto Superior Técnico 8

Consulta sem Índice Implica pesquisa sequencial ou varrimento (scan) pode ser muito lenta para tabelas grandes 9

Consulta com Índice Pesquisa no índice é muito rápida, mesmo para tabelas grandes Índice 2012 Ins)tuto Superior Técnico 10

Índices ordenados Numa tabela pode haver 2 tipos de índices Índice agrupado (clustered) indexa a coluna pela qual os dados estão ordenados normalmente é a chave primária, mas pode não ser Índice desagrupado (non-clustered) indexa uma coluna que não aquela pela qual os dados estão ordenados este índice especifica uma ordem diferente da tabela IST DEI Bases de Dados

Índices Agrupados (clustered) Índice Índice 2012 Ins)tuto Superior Técnico 12

Índices Desagrupados (non-clustered) Tabela Tabela Índice Índice 2012 Instituto Superior Técnico 13

Escolha de Índice Agrupado Podemos ter os índices não agrupados que quisermos sobre um ficheiro, mas apenas podemos ter um índice agrupado por ficheiro apenas uma organização de cada ficheiro permite um índice agrupado. Manter um índice agrupado tem custos quase como um ficheiro ordenado. Apenas se justifica em geral se várias interrogações tiram partido dele. 2012 Ins)tuto Superior Técnico 14

Exemplos Referência: http://www.mssqltips.com/sqlservertip/1206/ understanding-sql-server-indexing/ 2012 Ins)tuto Superior Técnico 15

Exemplo Tabela dbo.contact 20.000 registos Execution Plan do SQL Server Selecionar a consulta SQL + Control-L 2012 Ins)tuto Superior Técnico 16

Exemplo Sem índice 2012 Ins)tuto Superior Técnico 17

Exemplo Índice desagrupado na coluna lastname 2012 Ins)tuto Superior Técnico 18

Exemplo Índice agrupado na coluna lastname 2012 Ins)tuto Superior Técnico 19

Exemplo Índice desagrupado na coluna lastname, mas só selecionando lastname 2012 Ins)tuto Superior Técnico 20

Definição de índices em SQL Criação de um índice create index index_name on table_name(column_list) Exemplo create index branch_index on branch(branch_name) Para eliminar o índice: drop index branch_index IST DEI Bases de Dados

Definição de índices em SQL Criação de um índice create [clustered nonclustered] index index_name on table_name(column_list) Exemplo create clustered index branch_index on branch(branch_name) IST DEI Bases de Dados

Índices com múltiplas chaves de procura Certas perguntas exigem múltiplos índices select account_number from account where branch_name = Perryridge and balance = 1000 estratégias possíveis usar índice para branch_name e testar valor de balance usar índice para balance e testar valor de branch_name usar índice para branch_name e outro para balance e intersectar os resultados IST DEI Bases de Dados

Chaves de procura compostas Chaves de procura compostas chaves de procura com mais de um atributo p.ex. create index branch_balance_index on account (branch_name, balance) São pesquisados por ordem lexicográfica (branch 1, balance 1 ) < (branch 2, balance 2 ) se (branch 1 < branch 2 ) ou (branch 1 = branch 2 ) e (balance 1 < balance 2 ) IST DEI Bases de Dados

Chaves de procura compostas where branch_name = "Perryridge" and balance = 1000 Um índice composto pode ser usado para obter os registos que satisfazem as duas condições mais eficiente do que usar índices separados também é eficiente noutros casos, p.ex. where branch_name = "Perryridge" and balance > 1000 pode não ser eficiente em where branch_name > "Perryridge" and balance = 1000 obtém registos que satisfazem a primeira mas não a segunda condição IST DEI Bases de Dados

Exemplos Como escolher um índice? 2012 Ins)tuto Superior Técnico 26

Exemplo 1 SELECT E.dno FROM Employees E WHERE E.age > 40 2012 Ins)tuto Superior Técnico 27

Exemplo 1 SELECT E.dno FROM Employees E WHERE E.age > 40 Índice em age. Utilidade do índice depende da seletividade da condição (nº tuplos que satisfazem a condição) Se 90% tem idade superior a 40, índice é inútil Se apenas 10% têm idade superior a 40, é útil apenas se estiver agrupado 2012 Ins)tuto Superior Técnico 28

Exemplo 2 SELECT E.dno, COUNT(*) FROM Employees E WHERE E.age > 10 GROUP BY E.dno 2012 Ins)tuto Superior Técnico 29

Exemplo 2 SELECT E.dno, COUNT(*) FROM Employees E WHERE E.age > 10 GROUP BY E.dno Melhor opção seria ter índice em dno se condição em age é pouco seletiva. Se condição em age é muito seletiva, melhor seria um índice agrupado sobre age 2012 Ins)tuto Superior Técnico 30

Exemplo 3 SELECT E.dno FROM Employees E WHERE E.hobby = stamps 2012 Ins)tuto Superior Técnico 31

Exemplo 3 SELECT E.dno FROM Employees E WHERE E.hobby = stamps Se condição em hobby é pouco selectiva e consulta frequente então criar índice em hobby! 2012 Ins)tuto Superior Técnico 32

Exemplo 4 SELECT E.eid FROM Employees E WHERE E.age BETWEEN 20 and 30 AND E.sal BETWEEN 3000 and 5000 Índice composto <age,sal> se condições forem selectivas. Agrupado é melhor Ordem do índice composto indiferente se atributos igualmente seletivos 2012 Ins)tuto Superior Técnico 33

Sumário Índices Próxima aula: Transações 34