GARANTIR DESCONTO

Fórum Utilizando Index no Banco Firebird #47420

13/10/2004

0

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?


Tap_pedroso

Tap_pedroso

Responder

Posts

13/10/2004

Gandalf.nho

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)


Responder

Gostei + 0

13/10/2004

Tap_pedroso

vc pode me dizer onde e como utilizar esse gfix


Responder

Gostei + 0

13/10/2004

Gandalf.nho

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.


Responder

Gostei + 0

13/10/2004

Christian_adriano

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.


Responder

Gostei + 0

13/10/2004

Vinicius2k

Colega tap_pedroso,

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+


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar