Reindexar tabelas no Firebird via comando pelo Delphi
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...
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
Curtidas 0
Respostas
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
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+
|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
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+
Apenas um recálculo de seletividade traz ganho de desempenho ?
Se sim, acabo de aprender mais uma... :roll:
T+
GOSTEI 0
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+
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
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:
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