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.
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.
Confira outros conteúdos:
Perguntas frequentes
Nossos casos de sucesso
Eu sabia pouquíssimas coisas de programação antes de começar a estudar com vocês, fui me especializando em várias áreas e ferramentas que tinham na plataforma, e com essa bagagem consegui um estágio logo no início do meu primeiro período na faculdade.
Estudo aqui na Dev desde o meio do ano passado!
Nesse período a Dev me ajudou a crescer muito aqui no trampo.
Fui o primeiro desenvolvedor contratado pela minha
empresa. Hoje eu lidero um time de desenvolvimento!
Minha meta é continuar estudando e praticando para ser um
Full-Stack Dev!
Economizei 3 meses para assinar a plataforma e sendo sincero valeu muito a pena, pois a plataforma é bem intuitiva e muuuuito didática a metodologia de ensino. Sinto que estou EVOLUINDO a cada dia. Muito obrigado!
Nossa! Plataforma maravilhosa. To amando o curso de desenvolvimento front-end, tinha coisas que eu ainda não tinha visto. A didática é do jeito que qualquer pessoa consegue aprender. Sério, to apaixonado, adorando demais.
Adquiri o curso de vocês e logo percebi que são os melhores do Brasil. É um passo a passo incrível. Só não aprende quem não quer. Foi o melhor investimento da minha vida!
Foi um dos melhores investimentos que já fiz na vida e tenho aprendido bastante com a plataforma. Vocês estão fazendo parte da minha jornada nesse mundo da programação, irei assinar meu contrato como programador graças a plataforma.
Wanderson Oliveira
Comprei a assinatura tem uma semana, aprendi mais do que 4 meses estudando outros cursos. Exercícios práticos que não tem como não aprender, estão de parabéns!
Obrigado DevMedia, nunca presenciei uma plataforma de ensino tão presente na vida acadêmica de seus alunos, parabéns!
Eduardo Dorneles
Aprendi React na plataforma da DevMedia há cerca de 1 ano e meio... Hoje estou há 1 ano empregado trabalhando 100% com React!
Adauto Junior
Já fiz alguns cursos na área e nenhum é tão bom quanto o de vocês. Estou aprendendo muito, muito obrigado por existirem. Estão de parabéns... Espero um dia conseguir um emprego na área.