O particionamento permite decompor tabelas muito grandes e índices em partes menores e mais gerenciáveis que chamamos de partições. Cada partição é um objeto independente, com seu próprio nome e, opcionalmente, as suas características próprias de armazenamento. O particionamento se mostra muito útil para os mais variados tipos de aplicações, em especial as que administram grandes volumes de dados.
Neste contexto, o artigo trata de tarefas de manutenção em objetos particionados. Serão apresentadas as seguintes tarefas finais de manutenção: alteração de atributos padrão, alteração de atributos de partições existentes em tabelas e índices, modificação de partições do tipo list, alteração do template de subpartições, movimentação de partições, redefinição on-line de partições, reconstrução de partições de índices, renomeação de partições, divisão de partições e truncamento de partições.
Em que situação o tema é útil
Ao apresentar um conjunto de rotinas associadas a tarefas de
manutenção em partições em bancos de dados, este artigo é útil no apoio à
realização de atividades como alteração de atributos padrão de partições,
adição ou remoção de valores da lista de partições, movimentação de partições,
redefinição de partições de maneira on-line, renomeação de partições, divisão
de partições ou truncamento partições.
Durante o gerenciamento de partições, será necessário alterar em vários momentos alguns atributos padrão definidos para as partições, seja para alocar as novas partições em outros tablespaces ou mesmo atributos de partições já existentes na tabela.
Outra situação muito frequente é a necessidade de adicionar um novo valor a uma lista que define uma determinada partição. Novos dados, códigos de peças, um novo estado que a empresa começou a fornecer mercadoria ou ainda o inverso, ou seja, um determinado mercado que não há mais interesse em vender, pois o custo de envio se torna limitante e, consequentemente, aquele valor não mais será necessário naquela partição.
Sem contar as tarefas de movimentação de partições, que se mostram muito eficientes para eliminar problemas de fragmentação na partição (já resolvemos alguns problemas de performance simplesmente movendo uma partição) e ainda redefinições on-line, que permitem que a aplicação continue utilizando a tabela em quanto uma alteração estrutural é feita.
E quando esquecemos de “batizar” uma partição e ela recebe aquele nome que só os desenvolvedores da Oracle acreditam que faça sentido? Bem, vamos renomear esta partição para um nome mais intuitivo.
E não se esqueça das partições que crescem demasiadamente e o particionamento deixa de ser eficiente. É hora de dividir esta partição.
Finalmente, veremos como “limpar” toda a partição liberando todos os blocos Oracle para reutilização imediata.
Assim, neste último artigo da série serão mostradas as tarefas finais de manutenção em partições no Oracle, que são:
· Alteração de atributos padrão;
· Alteração de atributos de partições existentes em tabelas e índices;
· Modificando partições do tipo list: adicionar novo valor;
· Modificando partições do tipo list: excluindo valores;
· Alterando o template de subpartições;
· Movimentação de partições;
· Redefinição on-line de partições;
· Reconstrução de partições de índices;
· Renomear partições;
· Divisão de partições;
· Truncar partições.
Alteração de atributos padrão
É possível modificar os atributos padrão de uma tabela ou de uma partição de uma tabela particionada composta. Quando os atributos padrão são modificados, os novos valores terão efeito apenas para as partições ou subpartições novas, ou seja, que forem criadas a partir do momento da alteração e mesmo assim os valores padrão ainda poderão ser substituídos especificamente ao criar uma nova partição ou subpartição.
Para modificar o padrão de atributos herdados ao criar subpartições é necessário usar o comando ALTER TABLE ... MODIFY DEFAULT ATTRIBUTES FOR PARTITION, como mostra o código da Listagem 1.
Listagem 1. Alteração de atributo herdado para subpartições.
01. ALTER TABLE FUNCIONARIO
02. MODIFY DEFAULT ATTRIBUTES FOR PARTITION P_01
03. TABLESPACE TS_DADOS;
O código da Listagem 1 altera a tablespace em que as novas subpartições criadas na partição P_01 serão armazenadas. Vale lembrar que a partição P_01 faz parte da tabela FUNCIONARIO que possui particionamento composto do tipo range-hash.
No caso específico de tabelas com particionamento composto do tipo range-hash, apenas o atributo tablespace pode ser alterado, uma vez que todos os outros atributos devem ser compartilhados entre todas as subpartições.
Não é possível modificar atributos padrão de partições do tipo interval que ainda não foram criadas. Para alterar a maneira pela qual as futuras subpartições em uma tabela particionada por interval são criadas é necessário modificar o template da subpartição.
De forma parecida às tabelas particionadas, é possível alterar os atributos padrão que são herdadas por partições de índice global particionados por ...
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.