Artigo no estilo Mentoring

Mentoring:A técnica de particionamento segrega os registros com base em uma chave de particionamento especialmente definida e, ao eliminar os dados, a partição inteira é eliminada, evitando assim a fragmentação.

Neste artigo veremos como empregar a técnica de particionamento de forma a termos nossas bases de dados desfragmentadas. O entendimento deste tema é útil em situações onde é necessária a exclusão de uma quantidade alta de dados, principalmente para operações de expurgo de dados dos sistemas OLTP, a utilização da técnica de particionamento é especialmente útil, pois elimina por completo o eterno efeito colateral de fragmentação de tabela.

Um problema relativamente comum em bancos de dados é a fragmentação de tabelas. Mas é importante deixar claro que a fragmentação em tabelas acontece, primordialmente, em ambientes OLTP (On-Line Transactional Processing - Processamento de Transações On-Line) onde a quantidade de alterações (UPDATE) e exclusões (DELETE) é elevada.

Um ambiente OLTP é uma classe de sistemas que facilita a operação e gerenciamento de aplicações orientadas, normalmente, a entrada de dados e processamento de transações de consultas. OLTP também tem sido usado para se referir a processamento no qual o sistema responde imediatamente a pedidos do usuário. Um caixa eletrônico para um banco é um exemplo de uma aplicação comercial de processamento de transações on-line.

Em aplicações de grande porte, a eficiência de um sistema OLTP pode depender de um sofisticado software de gerenciamento de transações e/ou táticas de otimização de banco de dados para facilitar o processamento de um grande número de atualizações simultâneas para um banco OLTP.

Mas por qual motivo a fragmentação acontece em função de operações de UPDATE e DELETE? A fragmentação acontece devido a espaços nos blocos de dados reservados para a tabela que são liberados.

No caso de um UPDATE, isso acontecerá caso a alteração aconteça de uma forma que “diminua” o tamanho do registro em questão como, por exemplo, alterar a descrição de um produto de “Hamburger de proteína texturizada de soja” para “Hamburger de PTS”. Percebemos claramente a diminuição no tamanho da informação e, consequentemente, menos espaço de armazenamento será necessário, liberando espaço.

O caso de um DELETE é ainda mais claro, pois ao excluir um registro no banco de dados o espaço utilizado para armazená-los será imediatamente liberado.

Mas precisamos ainda entender como o Oracle gerencia o espaço para as tabelas. O espaço liberado normalmente não é reutilizado imediatamente e, em alguns casos, nunca são reutilizados deixando, por consequência, “buracos” na tabela que é justamente o que chamamos de fragmentação.

Quando os registros em uma tabela não são armazenados de forma contínua, muitas vezes utilizando inclusive blocos de dados diferentes, o impacto inevitável será a perda de performance, pois será necessário efetuar mais de uma leitura de bloco para recuperar todo o registro.

A fragmentação atua diretamente neste tipo de cenário, pois as operações de UPDATE e DELETE não liberarão o espaço livre abaixo da marca d’água da tabela (High WaterMark).

A High WaterMark, ou simplesmente HWM, é um “ponteiro” utilizado no banco de dados para indicar o espaço utilizado em um bloco. O espaço abaixo da HWM contém (ou já conteve) dados.

Se já conteve, significa que houve uma operação de DELETE ou UPDATE (reduzindo o tamanho da informação). E como o Oracle sabe que, com certeza, não há informações no bloco acima da HWM, então será efetuada a leitura do bloco apenas até a HWM quando um Full Table Scan é executado.

Full Table Scan (varredura total da tabela), também conhecida como Sequential Scan (varredura sequencial), é uma varredura feita no banco onde cada registro da tabela examinada é lido ...

Quer ler esse conteúdo completo? Seja um assinante e descubra as vantagens.
  • 473 Cursos
  • 10K Artigos
  • 100 DevCasts
  • 30 Projetos
  • 80 Guias
Tenha acesso completo