20 de jun de 2011

Identificando Índices Oracle com problema (e corrigindo eles)

Ao migrar um banco Oracle de um servidor para outro, pode ser necessário recriar os índices do banco, pois frequentemente apresentam problemas (principalmente quando DBAs [ha] acreditam que estão fazendo a coisa certa).

Pois bem, estou falando de Oracle 11. Pode ser que não funcione para 10,9 e eu não sei se funcionam. Mas antes de mais nada, de uma boa lida nas notas MOSC 122008.1, 989186.1 e 989093.1.

Não existe uma forma fácil de identificar qual indice está com problemas, mas vamos aos passos.

Coletar toda a informação possível inicialmente pode auxiliar.

Comece com o comando:

select * from user_indexes

Onde lista todas os indices.

Pode ser utilizado o comando:

ANALYZE INDEX index_name COMPUTE STATISTICS
ANALYZE INDEX index_name VALIDATE STRUCTURE

Gerando muita informação.

Mas logo após isso, execute:

ALTER INDEX index_name REBUILD

Com um commit no final.

Assim, a index será recompilada. Mas cuidado. Mantenha sempre backups completos dos bancos (com os índices) caso algo ocorra.

Postar um comentário