Particionamento no Oracle – Parte 7 - Revista SQL Magazine 111

Este artigo trata de tarefas de manutenção em objetos particionados no banco de dados para garantir melhor performance e gerenciamento de informações em ambientes que apresentam tabelas gigantescas ou mesmos em ambientes menores.

Demais posts desta série:
Particionamento no Oracle – Parte 1
Particionamento no Oracle – Parte 2
Particionamento no Oracle – Parte 3
Particionamento no Oracle – Parte 4
Particionamento no Oracle – Parte 5
Particionamento no Oracle – Parte 6
Particionamento no Oracle – Parte 8

Particionamento no Oracle – Parte 7
A utilização de particionamento no banco de dados Oracle é uma estratégia que garante um ganho de performance realmente surpreendente, mas simplesmente começar a utilizar esta funcionalidade mas não se preocupar com a garantia de um desempenho constante ou até mesmo melhor cada vez mais pode fazer com que esta estratégia se transforme em uma grande “dor de cabeça”.

Para facilitar o gerenciamento de tantas partições, a redução do número de partições (contendo dados antigos, por exemplo) pode ser uma boa ideia e, para alcançar este objetivo, a estratégia de coalesce de partições está disponível para o uso.

Neste contexto, este artigo trata de tarefas de manutenção em objetos particionados no banco de dados para garantir melhor performance e gerenciamento de informações em ambientes que apresentam tabelas gigantescas ou mesmos em ambientes menores, mas que se beneficiam da estrutura do particionamento.

Serão apresentadas as seguintes tarefas de manutenção: coalesce, exclusão, troca de partições e fusão entre partições.

Em que situação o tema é útil
A partir do momento em que se opta por utilizar estratégias de particionamento, consequentemente se fará necessária a utilização de tarefas de manutenção. Assim, reduzir o número de partições em uma tabela particionada, excluir partições antigas, fundir duas partições e efetuar troca de dados entre partições são situações em que o tema abordado neste artigo se mostra especialmente útil.

Armazenar dados eternamente pelo fato do particionamento oferecer ótimos níveis de desempenho não me parece ser uma boa ideia, pois apesar do desempenho não ser comprometido, recursos como unidades de armazenamento são consumidos, muitas vezes, sem a necessidade. É o caso de dados antigos que não mais atendem qualquer necessidade (de negócio ou mesmo jurídica) e não precisam mais permanecer no banco de dados. Para esta situação, por exemplo, o DBA pode lançar mão da estratégia de exclusão de partição, que eliminará os dados antigos de maneira fácil e sem comprometer outros recursos como espaço em tablespace de UNDO, por exemplo.

E o que dizer quando, por questões legais (por exemplo), seja necessário manter dados históricos, mas estes dados devem permanecer num ambiente de data warehouse? Excluir as partições antigas não é uma boa estratégia, mas efetuar uma troca entre a tabela particionada do seu ambiente OLTP e a tabela do seu ambiente de data warehouse passa a ser uma solução tangível. Para isso, usa-se a estratégia de exchange.

E existem ainda situações em que uma quantidade muito grande de partições pode não se mostrar vantajoso e a manutenção se torna mais complicada devido a quantidade excessiva de partições. Para solucionar esse inconveniente, há ainda a opção de juntar partições, eliminando as duas primeiras e criando-se uma terceira partição que contém todos os dados das duas anteriores. Esta junção é facilmente alcançada através da estratégia de merge."

[...] continue lendo...

Artigos relacionados