Utilizando Index no Banco Firebird
tenho três perguntas:
1ª eu tenho um banco com varios campo indexados (como null e unique)
se por acaso o sistema está sendo utilizado e houver uma queda de energia o banco pode perder esse indices, estou correto?
2ª se eu perder esses indices que rotina eu posso usar no meu sistema para reindexar os indices no banco?
3ª se eu reindexar o banco o sistema volta ao normal ou eu corro o risco de perder algum registro?
1ª eu tenho um banco com varios campo indexados (como null e unique)
se por acaso o sistema está sendo utilizado e houver uma queda de energia o banco pode perder esse indices, estou correto?
2ª se eu perder esses indices que rotina eu posso usar no meu sistema para reindexar os indices no banco?
3ª se eu reindexar o banco o sistema volta ao normal ou eu corro o risco de perder algum registro?
Tap_pedroso
Curtidas 0
Respostas
Gandalf.nho
13/10/2004
Acho que a única maneira de perder um índice seria corromper o banco de dados, daí tem que passar o Gfix. O que pode acontecer é degradar a chamada seletividade do índice o que torna o índice menos eficaz. Você pode usar o comando SET STATISTICS para ajustar novamente a seletividade (ou se o banco de dados não for muito grande, simplesmente faça um backup e depois restaure-o)
GOSTEI 0
Tap_pedroso
13/10/2004
vc pode me dizer onde e como utilizar esse gfix
GOSTEI 0
Gandalf.nho
13/10/2004
Gfix é um utilitário de linha de comando que acompanha o IB/FB. Você pode reparar um banco corrompido através dele ou usando a SERVICES API. Geralmente os aplicativos que servem para fazer a manutenção das bases de dados (IBConsole, IBOConsole, IBExpert, etc) tem uma opção para usar o reparo. Dê uma olhada na documentação para ver como usa o Gfix (eu uso a API, por isso não sei os parâmetros) ou pesquise no fórum.
GOSTEI 0
Christian_adriano
13/10/2004
olá colega gandalf,
vc poderia me passar como se faz para Verificar se um banco esta corrompido ou danificado e caso esteja como recupera-lo usando SERVICES API ??
Desde já agradeço atenção.
[]´s.
Christian.
vc poderia me passar como se faz para Verificar se um banco esta corrompido ou danificado e caso esteja como recupera-lo usando SERVICES API ??
Desde já agradeço atenção.
[]´s.
Christian.
GOSTEI 0
Vinicius2k
13/10/2004
Colega tap_pedroso,
Vc está encarando um Banco de Dados Relacional, como se fosse um Banco Desktop...
Não vai ´perder´ índices... o risco é de danificar a base toda ou parcialmente, incluindo os índices, e talvez, possa ser corrigido com o GFIX ( pesquise no fórum como utilizá-lo via linha de comando ).
Assim como não vai ´perder´, ´reindexar´ não seria o termo mais apropriado... vc pode reconstruir os índices de duas formas :
Dropar e Recriar :
ou Desativar e Ativar :
Isto é impossível prever... depende do dano causado à base... não abra mão de um no-break no seu servidor e suas chances de problemas serão quase nulas... menores ainda com o Firebird (em comparação com o IB 6) pq o Forced Writes já está ´ligado´ por default, a não ser que vc desligue...
T+
Vc está encarando um Banco de Dados Relacional, como se fosse um Banco Desktop...
se por acaso o sistema está sendo utilizado e houver uma queda de energia o banco pode perder esse indices, estou correto?
Não vai ´perder´ índices... o risco é de danificar a base toda ou parcialmente, incluindo os índices, e talvez, possa ser corrigido com o GFIX ( pesquise no fórum como utilizá-lo via linha de comando ).
se eu perder esses indices que rotina eu posso usar no meu sistema para reindexar os indices no banco?
Assim como não vai ´perder´, ´reindexar´ não seria o termo mais apropriado... vc pode reconstruir os índices de duas formas :
Dropar e Recriar :
drop index INDICE; /*...*/ create index INDICE on TABELA (COLUNA1, COLUNA2, ... COLUNAn);
ou Desativar e Ativar :
alter index INDICE inactive; /*... */ alter index INDICE active;
se eu reindexar o banco o sistema volta ao normal ou eu corro o risco de perder algum registro?
Isto é impossível prever... depende do dano causado à base... não abra mão de um no-break no seu servidor e suas chances de problemas serão quase nulas... menores ainda com o Firebird (em comparação com o IB 6) pq o Forced Writes já está ´ligado´ por default, a não ser que vc desligue...
T+
GOSTEI 0