Esta feature está disponível a partir da versão 9i, tendo alguns métodos disponíveis a partir da versão 12c.
A Basic Table Compression (compressão básica de tabelas) é disponibilizada com a licença Enterprise do Oracle Database, e não representa custos à parte deste licenciamento para uso; já o pacote Oracle Advanced Compression (compressão avançada) contempla diferentes tipos de compressão. Dentre estes, foram avaliados os tipos Advanced Row Compression e Advanced Index Compression no nível High.
Não há opções de compressão para edições Standard das databases. Antes de realizar qualquer operação de compressão, verifique junto ao fornecedor se isto representará algum custo adicional. A TOTVS não se responsabiliza por custos adicionais causados pelo uso das features descritas nesta página.
Quais são os benefícios da compressão de dados?
Há uma redução significativa no espaço em disco consumido, bem como diminuição de quantidade de I/O, otimizando o desempenho de instruções SELECT e DELETE.
Quais os impactos da compressão de dados?
Além do descrito acima, é provável o aumento do consumo de CPU na máquina de banco de dados.
O tipo de compressão escolhida influencia na frequência de manutenções e execuções de script na base de dados. Antes de executar qualquer manutenção, meça o esforço necessário para o gerenciamento da base com compressão aplicada.
Qual tipo de compressão utilizar?
Foram avaliadas as seguintes opções: Basic Table Compression, Advanced Row Compression e Advanced Index Compression. Avalie, junto a um DBA, quais tabelas devem receber a compressão e qual modo é o ideal para seu ambiente.
Testes com a compressão
Nos testes realizados foi utilizado o Oracle Database 19c Enterprise, com os binários Harpia e release 12.1.33 do Protheus.
A base de dados foi inicialmente carregada com pouco mais de 100GB; o gráfico abaixo representa o tamanho total da base sem compressão (NoCompress), com a compressão básica de tabelas aplicada (Basic) e com a compressão avançada de índices e tabelas (Advanced). Neste caso, a compressão avançada trouxe 88% de redução no tamanho total da base.
Atenção - Percentual de redução
Os scripts disponibilizados realizam um select em sua base de dados. Selecione o resultado do select e, com acompanhamento de um DBA, execute o retorno para que a compressão seja efetuada.
Nos scripts, substitua '%schema%' para o Schema do Protheus.
Ordem dos scripts
Ao executar a compressão ou remover a compressão, realize primeiro as operações nas tabelas, após isto, realize a operação nos índices; isto evitará que os índices fiquem desatualizados.
A compressão básica para tabelas (Basic Table Compression) é disponibilizada com a versão Enterprise do Oracle e não tem custo adicional para ser utilizada. Esta atua somente em cargas diretas (ALTER TABLE), e não nos dados carregados com operações DML (Insert e Updates), que representam o padrão de alterações de um ERP. É importante ressaltar que isto demandará manutenções frequentes na base de dados. Caso seja possível realizar paradas frequentes em seu ambiente para manutenções periódicas, este tipo de compressão pode atender, tendo o custo do esforço para executá-la. Sempre consulte um DBA para avaliação do ambiente e estudo do impacto de uma alteração em sua base de dados.
Atenção
A compressão avançada é uma feature adicional, contratada separadamente com o fornecedor.
Este tipo de compressão se adequa melhor à ambientes OLTP (On-Line Transaction Processing), ou seja, sistemas transacionais, e compacta dados manipulados por quaisquer operações SQL.
A remoção da compressão de dados pode ser necessária em determinados casos, por exemplo, ao migrar uma base de dados para outra versão ou para uma instalação que não possua o licenciamento necessário desta feature. Nestes casos, disponibilizamos os scripts para a remoção da compressão.