De que se trata o artigo

O SGBD Oracle disponibiliza uma solução completa de particionamento de dados. São várias as opções que podem ser utilizadas. Nesta segunda parte do artigo, daremos continuidade à análise das técnicas de particionamento através de uma abordagem teórica e prática.

Em que situação o tema é útil

Particionamento de dados é um tema bastante útil para facilitar o gerenciamento de grandes bases de dados. Através dele é possível realizado o gerenciamento descentralizado das informações. Além disso, seu uso tende a tornar o armazenamento dos dados mais eficiente e com melhor desempenho.

Particionamento no Oracle – Parte 2

A crescente quantidade de dados armazenados em SGBDs em organizações dispersas geograficamente tem levado à necessidade cada vez maior de um gerenciamento eficiente e performático das bases de dados.

Neste artigo conheceremos mais algumas técnicas de particionamento em banco de dados. Abordaremos as técnicas de particionamento por hash, intervalo, referência, composto range-range, composto range-list, composto range-hash e composto list-list. Todas as técnicas serão apresentadas considerando suas definições e exemplos de uso.

Este artigo é o segundo de uma série que trata sobre particionamento de tabelas e índices no banco de dados Oracle. Além de facilidade no gerenciamento de dados, o particionamento oferece um grande ganho de desempenho em tabelas cujo volume de dados é muito alto.

Pensando justamente nesta necessidadea Oracle oferece já há bastante tempo uma solução realmente muito boa. Trata-se do particionamento de objetos. Através desta funcionalidade o DBA poderá prover à aplicação uma solução de baixíssimo custo (trata-se de uma funcionalidade presente na versão Enterprise Edition do banco de dados Oracle sem custo adicional), sem a necessidade de alterações de código e que oferece um desempenho realmente impressionante.

A versatilidade oferecida pela solução realmente impressiona, permitindo que partições sejam criadas com base em um intervalo de dados (que podem ser valores numéricos ou mesmo datas) ou uma lista de valores (estados da federação, por exemplo) ou ainda através de um algoritmo de particionamento e, como se não bastasse, até mesmo baseado na combinação destas estratégias. O melhor de tudo é que toda essa implementação é totalmente transparente para a camada de aplicação.

Esta funcionalidade não está limitada apenas a situações onde existam tabelas gigantescas (como ambientes de Data Warehouse, por exemplo), mas se adaptam perfeitamente a situações em que seja necessário gerenciar o ciclo de vida das informações ou até mesmo “organizar” melhor a forma em que os dados estejam armazenados nas tabelas.

Na primeira parte desta série de artigos vimos os principais conceitos sobre particionamento no banco de dados Oracle. Dentre os conceitos pudemos perceber que a estratégia de particionamento é especialmente importante no que diz respeito a desempenho em consultas a tabelas com volumes de dados realmente grandes.

A crescente demanda pela necessidade de armazenamento de arquivos binários também é uma das características beneficiadas pela técnica de particionamento. Outra característica bastante beneficiada pelo particionamento é o gerenciamento do ciclo de vida das informações. Muitas vezes, por questões legais ou estratégicas, as informações precisam ser mantidas no banco de dados por um período definido de tempo e, após esse período, estas informações já podem ser retiradas do banco de dados. Mais uma vez podemos ver a grande facilidade de expurgar estas informações através da utilização de particionamento.

Ainda no primeiro artigo apresentamos duas estratégias de particionamento: de nível único do tipo range (intervalo) e list (lista). Neste artigo apresentaremos a terceira estratégia de particionamento de nível único, do tipo hash (ver Nota do DevMan 1) e também começaremos a apresentar as estratégias de particionamento composto.

Nota DevMan 1

A função Hash

Uma função hash é qualquer algoritmo ou sub-rotina que mapeia grandes conjuntos de dados de comprimento variável, denominadas chaves, para conjuntos de dados menores de um comprimento fixo. Por exemplo, o nome de uma pessoa, que tem um comprimento variável, pode ser convertido em um único número inteiro. Os valores retornados por uma função hash são chamados de valores de hash, códigos de hash ou simplesmente hashes.

As funções hash são usadas principalmente para acelerar as tarefas de pesquisa em tabelas ou comparação de dados, tais como encontrar itens em um banco de dados, detectar duplicidades ou registros similares em um arquivo grande, encontrar trechos semelhantes em sequências de DNA, e assim por diante.

Uma função hash deve ser referencialmente transparente (estável), ou seja, se chamada duas vezes naentrada que é "igual" (por exemplo, os strings que consistem na mesma sequência de caracteres), deve retornar o mesmo resultado. Este é um consenso em muitas linguagens de programação que permite que o usuário substitua igualdade e funções de hash para um objeto: se dois objetos são iguais, seus códigos de hash devem ser o mesmo. Isso é crucial para encontrar um elemento em uma tabela hash rapidamente, porque dois elementos iguais compartilhariam o mesmo slot de dados.

...

Quer ler esse conteúdo completo? Tenha acesso completo