Oracle ORA: Entendendo e solucionando erros ORA

Este artigo apresenta erros comuns que podem acontecer em um banco de dados Oracle e discute soluções que podem ser adotadas em cada caso.

Fique por dentro
O artigo traz em seu conteúdo a contextualização das causas de alguns erros do banco de dados Oracle e as possíveis técnicas de soluções para cada erro. Traz exemplos ilustrados das situações em que os erros podem ocorrer e exemplificando as possíveis soluções.

Este artigo será útil para profissionais que trabalham com o banco de dados Oracle, seja desenvolvendo ou administrando. Quando executamos uma instrução qualquer no banco, inesperadamente um erro pode ocorrer. Estas e outras situações serão abordadas neste artigo.

Vamos iniciar falando um pouco sobre um dos principais objetos existentes em um banco de dados, a tabela. Assim como todo objeto de um banco de dados, a tabela possui algumas propriedades que devem ser bastante analisadas para desempenhar corretamente a sua função.

Para a criação de tabelas em qualquer banco de dados é importante conhecer o uso correto da sua sintaxe, principalmente através de documentos e/ou manuais do SGBD fornecido por seus fabricantes. Estes materiais são facilmente encontrados na internet (veja na seção Links).

Entre outras propriedades, iremos abordar neste artigo a propriedade chamada table_compression.

Adicionada a partir da versão 9i do Oracle, essa propriedade tem por objetivo reduzir o espaço de armazenamento em disco através da compressão dos segmentos de dados. Ela é muito utilizada em ambientes data warehouse e OLTP.

Existem algumas opções de compressão utilizadas pela propriedade table_compression:

· Nocompress – esta opção é a default na criação de uma tabela no Oracle. Não há necessidade de mencioná-la na linha de comando SQL. Com esta opção, não haverá compactação dos dados da tabela;

· Compress – Esta opção é considerada adequada para utilização em ambientes de data warehouse. Com esta opção, a compactação é ativada na tabela ou em partição da tabela durante instruções de INSERT, somente por direct-path;

· Compress for direct_load operations – Esta opção tem o mesmo efeito que o tipo Compress;

· Compress for all operations – Esta opção é considerada adequada para ambientes OLTP. Ela permite o uso da compactação em todas as operações, incluindo declarações DML.

Esta opção requer parâmetro de inicialização compatível a ser configurado para versão 11.1.0 ou superior.

Além da economia no consumo em disco, a utilização da propriedade pode resultar em aumento de desempenho de I/O e redução de memória do buffer cache. Porém, resultará em sobrecarga de CPU, portanto, vai depender da relação custo x benefício para saber se será vantajoso a sua utilização.

Existem restrições quanto ao uso da propriedade table_compression. Iremos citar algumas:

· Não é possível a sua utilização em tabelas com mais de 255 colunas;

· Os segmentos de dados Basicfile LOBs não podem ser compactados;

· Tabelas externas ou que fazem parte de um cluster também não podem ser compactadas;

· Tabelas compactadas só podem ter colunas adicionadas e removidas se a opção Compress for all operations for usada;

· Não é possível remover colunas de tabela que utiliza a compactação com as opções Compress ou Compress for direct_load operations. Na versão 11g R2 esta opção foi renomeada para Compress for OLTP e seu nome original foi substituído.

Erro ORA-39726: Operação de adição/eliminação de coluna não suportada em tabelas compactadas

Conforme foi contextualizado anteriormente, existem algumas restrições quanto ao uso da propriedade table_compression para compactação de dados da tabela. Uma destas restrições é não poder remover colunas quando utilizamos a opção Compress. Também não poderá ser realizado com a opção Compress for direct_load operations.

Utilizando o banco de dados Oracle 11g R2 e a ferramenta PL/SQL Developer 8, exemplificaremos a criação de uma tabela utilizando a opção compress da propriedade table_compression, conforme mostra a Figura 1.

abrir imagem em nova janela

Figura 1. Criando tabela compactada usando a opção compress

Como a restrição é apenas para remoção de colunas, podemos realizar inclusões de colunas com êxito, conforme mostra a "

[...] continue lendo...

Artigos relacionados