Armazenamento de Dados e Indexação 1
Armazenamento 2
Introdução Dados: O que é? Qualquer coisa contendo informação Enciclopédia Fita cassete Cartas 3
Introdução Dados: O que é? Tudo que um computador processa ou é capaz de processar E-mails Arquivos texto Fotos digitais Base de dados 4
Armazenamento de Dados Informação estruturada em uma forma que pode ser armazenada, e consequentemente, utilizada Armazenamento Primário Armazenamento Secundário 5
Armazenamento Primário Principal dispositivo Corrente elétrica Alta velocidade Acesso direto por CPUs Barramento de memória 6
Armazenamento Secundário Armazenamento magnético Mantém dados até que sejam apagados Não são diretamente conetados à CPU Não são tão rápidos 7
Armazenamento de Base de Dados Crescente aumento de armazenamento Dobra a cada 2-3 anos Aumento de custo Elementos mais caros Queda no desempenho Muitos dados Orçamento vs Desempenho 8
Armazenamento de Base de Dados Empresas possuem DB gigantes Muitos dados poucos acessados Outros sempre utilizados Manter qualidade de acesso para todos os dados Muito custoso Ineficiente Arquiteturalmente impossível 9
Armazenamento de Base de Dados STORAGE TIERING (ST) Dividir dados em blocos/camadas Dados frios são movidos Retirados dos blocos mais custosos e rápidos Continuam disponíveis Acesso mais lento Baixa velocidade de acesso 10
Armazenamento de Base de Dados STORAGE TIERING (ST) Efeito mínimo do desempenho Dados frios são raramente acessados Dados frios também são comprimidos Information Lifecycle Management (ILM) Classifica os dados e estabelece políticas de migração de dados em um TIER apropriado ILM inclui todas as fases de um registro, desde o início até o fim 11
STORAGE TIERING (ST) 12
Armazenamento de Base de Dados STORAGE TIERING Diferentes porções de dados são atribuídos à diferentes TIERS baseado em: Demanda Custo Desempenho Disponibilidade Segurança 13
Armazenamento de Base de Dados COMPRESSION TEARING (CT) Usada além de ST Dados frios são comprimidos: IML: Ganho de espaço Perca de desempenho Super Ativo Ativo Pouco Ativo Histórico 14
Armazenamento de Base de Dados TIERING Mesmo com ST e CT é um grande desafio decidir qual aonde e quando um conjunto de dados deve se manter ou migrar para outro TIER Métodos: Heat Map Automatic Data Optimization 15
Armazenamento de Base de Dados HEAT MAP (HM) Otimiza a organização dos dados Forma que dados estão sendo acessados Informa como os padrões de acesso mudam com o tempo Utilização feita por PL/SQL 16
Armazenamento de Base de Dados HEAT MAP (HM) 17
Armazenamento de Base de Dados Automatic Data Optimization (ADO) Usuário cria políticas para compressão e deslocamento de dados SmartCompression SmartCompression Utiliza HM para determinar momento de execução de uma operação ADOs criadas, avaliadas e executadas a qualquer momento por um DBA Políticas ADOs especificam condições para inicializar uma Operação ADO 18
Armazenamento de Base de Dados Automatic Data Optimization (ADO) Reduz espaço utilizado por dados antigos Aumenta o desempenho de Queries 19
Armazenamento de Base de Dados Automatic Data Optimization (ADO) Exemplo 1 ALTER TABLE orders ILM ADD POLICY ROW STORE COMPRESS ADVANCED SEGMENT AFTER 30 DAYS OF NO MODIFICATION; Um segmento é um conjunto de extensões que contém todos os dados para uma estrutura de armazenamento lógico específico dentro de uma tabela. 20
Armazenamento de Base de Dados Automatic Data Optimization (ADO) Exemplo 2 ALTER TABLE orders ILM ADD POLICY ROW STORE COMPRESS ADVANCED ROW AFTER 3 DAYS OF NO MODIFICATION; 21
Armazenamento de Base de Dados Automatic Data Optimization (ADO) Exemplo 3 ALTER TABLE orders ILM ADD POLICY tier to low_cost_store; 22
Indexação 23
Conceito Um índice é uma estrutura de dados que associa uma determinada propriedade de um registro(chave de pesquisa) à sua localização. Dessa forma a indexação permite encontrar e acessar um registro mais rapidamente. Índices podem ser densos ou esparsos. 24
Estruturas de índices Índice primário; Índice de agrupamento (clustering); Índice secundário; Índices multiníveis; Arvores B e B+; Tabelas Hash; 25
Tabela Hash Hashing é uma forma de indexação de dados onde o índice é gerado à partir da chave de cada registro, utilizando uma função. Os possíveis índices são inicialmente fixos. A função hash deve distribuir as chaves o mais uniformemente possível nos índices. 26
Tabela Hash O algoritmo deve tratar colisões de chaves em um mesmo índice. Os registros podem ser armazenados em: Vetor simples Vetor de listas Vetor de Buckets 27
Tabela Hash Tabelas Hash podem ser estáticas ou dinâmicas. É rápido para busca, inserção e remoção, desde que hajam muitas colisões. Pode usar espaço desnecessário. 28
Tabela Hash 29
Árvore B Consegue armazenar índice e dados na mesma estrutura (mesmo arquivo físico) Características de uma árvore B de ordem d A raiz é uma folha ou tem no mínimo 2 filhos Cada nó interno (não folha e não raiz) possui no mínimo d + 1 filhos Cada nó tem no máximo 2d + 1 filhos Todas as folhas estão no mesmo nível Um nó de uma árvore B é também chamado de página Uma página armazena diversos nós da tabela original Seu tamanho normalmente equivale ao tamanho de uma página em disco 30
Árvore B+ É semelhante a árvore B, exceto por duas características muito importantes: Armazena dados somente nas folhas os nós internos servem apenas de ponteiros As folhas são encadeadas Isso permite o armazenamento dos dados em um arquivo, e do índice em outro arquivo separado Árvore B+ na prática 31
Referências Automatic Data Optimiization with Oracle Database 12c August, 2013 Author: Kevin Jernigan Contributing Authors: Gregg Christman, Cris Pedregal 32
Referências Slides Módulo V: Indexação em Banco de Dados http://www.inf.unioeste.br/~clodis/bdi/bdi_2007_modulo5_1.pdf Hash-Based Indexes Chapter 10 Database Management Systems 3ed R. Ramakrishnan and J. Gehrke 33