Devido ao uso e crescimento de um banco de dados e ate mesmo em falhas de configuração, é possivel que os Indices fiquem Fragmentados e com a estatistica desatualizada. Isto pode ocasionar que eles sejam preteridos pelo compilador na hora de gerar o plano de execução dos comandos o que pode degradar a performance ( pesquisa lenta por exemplo) . Uma das muitas formas de fazer tunning nos indices é refazendo sua estrutura ou as estatisticas . Ao refazer sua Estrutura geralmente Desativamos os Indices e logo em seguida o Ativamos . Num processo semelhante ao que esta escrito abaixo:
ALTER INDEX MEU_INDICE INACTIVE; COMMIT; ALTER INDEX MEU_INDICE ACTIVE; COMMIT;
O Incoveniente é que o procedimento descrito não funciona em índices associados a chaves primárias, estrageiras ou uniques, pois eles não podem ser desativados. Mas descobriu-se recentemente Devido a um “artefato de implementação”, que o simples fato de rodar um ALTER INDEX MEU_INDICE ACTIVE, mesmo quando o MEU_INDICE já está ativo, faz com que o Firebird o reconstrua. Com a vantagem de funcionar mesmo com índices associados a regras de integridade.
ALTER INDEX MEU_INDICE ACTIVE;
COMMIT; // ja é suficiente
Portanto uma grande descoberta ….
ps) Não é minha autoridade a assinatura do método mas de uma das maiores autoridades do Firebird no Brasil . Achei a dica muito interressante e subescrevi aqui no blog
http://www.firebase.com.br/fb/artigo.php?id=2272
tem que fazer um cadastro para a leitura…