Reindexar tabelas no Firebird via comando pelo Delphi

Firebird

26/10/2004

Ola .

Gostaria de saber se e possivel fazer uma reindexação em todas as tabela no firebird via comando no delphi.
Se alguem souber e pude me ajudar eu agradeço...


Alexrol

Alexrol

Curtidas 0

Respostas

Gandalf.nho

Gandalf.nho

26/10/2004

Na verdade, não é possível ´reindexar´ índices no Firebird como ocorre no Paradox e similares. O que você pode fazer é recalcular a seletividade do índice, o que melhora seu desempenho. Para isso use o comando SET STATISTICS INDEX nome_índice ou se o banco não for muito grande, um backup/restore já ajuda..


GOSTEI 0
Afarias

Afarias

26/10/2004

|Na verdade, não é possível ´reindexar´ índices no Firebird como ocorre
|no Paradox e similares.

Na verdade é possível sim ;) só não é necessário (normalmente) como nos bancos q vc citou (GAs).

alexrol, diferente dos gerenciadores de arquivos como xBase & CIA os SGBD não necessitam ter seus índices ´reindexados´, pelo menos não na frequência absurda dos GAs.


Além de recalcular a seletividade e reconstruir todos os índices com um backup e restore, como bem mencionado pela Gandalf, vc pode reconstruir um índice de 2 formas:

1) dropando e criando o índice novamente
2) *mais ´correta´* desativando o índice e ativando novamente::

alter index nome_indice inactive;
alter index nome_indice active;


T+


GOSTEI 0
Vinicius2k

Vinicius2k

26/10/2004

Pintou uma dúvida...
Apenas um recálculo de seletividade traz ganho de desempenho ?

Se sim, acabo de aprender mais uma... :roll:

T+


GOSTEI 0
Afarias

Afarias

26/10/2004

|Apenas um recálculo de seletividade traz ganho de desempenho ?

Teoricamente pode sim Vina -- já q o otimizador toma (ou pode tomar) o valor da seletividade na escolha dos índices durante a construção do Plano de execução da consulta.


Alguns arqtigos comentando o assunto:

http://www.firebase.com.br/cgi-bin/firebase.cgi/artigo?ID=268
http://www.firebase.com.br/cgi-bin/firebase.cgi/artigo?ID=126


T+


GOSTEI 0
Vinicius2k

Vinicius2k

26/10/2004

Humm... aprendi mais uma não... aprendi mais duas...

Eu sabia que de alguma forma o otimizador utilizava a seletividade do índice na decisão de aplicação no PLAN, mas não sabia exatamente onde ele buscava esta informação e como a utilizava, então, esta informação era vaga para mim...

Valew Anderson ! :wink:


GOSTEI 0
POSTAR