domingo, 31 de agosto de 2008

Memória, Blocos, Cache? ...

Estruturas de Armazenamento

Estruturas de armazenamento são os meios pelo quais os bancos de dados são armazenados em massa por um período prolongado em algum tipo de mídia, seja ela disco rígido, cd-rom, fita magnética, memória principal, etc. Os dados precisam ser recuperados constantemente pelos usuários, para isso estas estruturas foram criadas, utilizando-se de várias técnicas para serem acessados e armazenados com segurança.

a) Hierarquia de memórias e Dispositivos de Armazenamento
No nível de armazenamento primário, a memória cache é usada pela CPU para acelerar a execução do programa. No próximo nível de armazenamento primário, está a memória DRAM, responsável por fornecer a principal área de trabalho para a CPU. No nível de armazenamento secundário, a hierarquia compreende os discos magnéticos (Hard Disk e CD-Rom) e finalmente as fitas, a mais barata nas extremidades. Estas mídias armazenam os dados em massa.

b) Armazenamento de Banco de Dados

Os bancos de dados armazenam grandes quantidades de informações por longos períodos. Estas informações, geralmente são armazenadas permanentemente em armazenamento secundário de discos magnéticos pelas seguintes razões.

a. Os bancos de dados são muito grandes e não cabem na memória principal.
b. As circunstâncias que causam a perda permanente de dados aparecem com menos freqüências nas mídias de armazenamento secundário. (o armazenamento principal é mantido somente na execução do programa).
c. O custo de armazenamento secundário é uma ordem de magnitude menor para discos que para armazenamento primário.
As técnicas que são utilizadas para armazenas grandes quantidades de dados em um disco são de extrema importância para os DBA’s, pois através delas serão escolhidas a melhor técnica de organização dos dados para se adaptar aos requisitos de uma determinada aplicação.
Os discos são divididos em trilhas de dezenas de Kbytes até 150 kbytes que armazenam grandes quantidades de informações, que, por sua vez, é dividida em blocos ou em setores menores.

c) Buffering de Blocos

Quando é necessário buscar estas informações no disco, os blocos são transferidos para a emória principal, todos endereços de blocos são conhecidos e diversos buffer’s são armazenados na memória principal para auxiliar a transferência.
Enquanto um buffer estiver sendo utilizado na memória principal, A CPU pode processar os dados contidos em outro buffer paralelamente. Isso somente é possível porque existe um rocessador de entrada e saída independente, que uma vez inicializado, também pode transferir os blocos de maneira independente.

Devido à importância e limitações de tempo, neste artigo somente serão citados estas estruturas de armazenamento. Outras estruturas de armazenamento como Registros e Tipos de Registros; Arquivos, Registros de Tamanhos fixos e Tamanhos variável; Alocação de blocos de Arquivo em Disco, Acesso paralelo em Disco Usando a Tecnologia Raid, etc, poderão ser encontradas no Livro ELMASRI, Ramez e NAVATHE, Shamkant B. Sistemas de Banco de Dados.

3.3. Índices

Os índices são estruturas que visam melhorar a performance de acesso aos dados em um banco de dados. Os índices, assim como as tabelas, podem ser implementados através de várias estruturas de armazenamento, e sua forma de utilização não é uma fórmula exata que fornece bons resultados automaticamente. É preciso saber quando e como utilizá-los.

Vamos então analisar como os índices devem ser utilizados e suas características em alguns SGBD bastante utilizados.
Embora os comandos de manipulação de dados sejam razoavelmente padronizados entre os produtos baseados em SQL, as características que envolvem os índices são menos padronizadas, pois estão mais próximas da arquitetura física do banco de dados.

A principal razão para se construir um índice é melhorar o desempenho nas consultas realizadas no banco de dados. Uma segunda razão é reforçar a unicidade entre os registros armazenados numa tabela do banco de dados.

Otimização de SGBD

Nenhum comentário: