[firebase-br] RES: [ AJUDA ] Ativar e Desativar Indices ????/

Diego Maccari diegomaccari em ig.com.br
Seg Jul 4 15:00:00 -03 2011


Cantu boa tarde

Obrigado por responder.

Eu estava tentando criar um SP que pudesse fazer isso o erro aconteceu na 
seguinte instrução "EXECUTE BLOCK AS"

acredito que seja um erro bem primario, ja que sou iniciante em FB.

Aproveitando a apurtunidade seria possivel escrever um SP para isso ?, Segue 
o SQL.

SET TERM !! ;
EXECUTE BLOCK AS
DECLARE VARIABLE STMT VARCHAR(1000);
BEGIN
FOR SELECT 'ALTER INDEX '||RDB$INDEX_NAME ||' ACTIVE;'
FROM RDB$INDICES
WHERE RDB$SYSTEM_FLAG IS NOT NULL AND RDB$SYSTEM_FLAG = 0
INTO :STMT
DO EXECUTE STATEMENT :STMT;
END!!
SET TERM ; !!


-----Mensagem Original----- 
From: Carlos H. Cantu
Sent: Monday, July 04, 2011 2:46 PM
To: FireBase
Subject: Re: [firebase-br] RES: [ AJUDA ] Ativar e Desativar Indices ????/

Índices associados a constraints (PKs, FKs, etc) não podem ser
desativados no Firebird.

Se a idéia é reconstruir todos os índices, segue a dica:
http://www.firebirdnews.org/?p=5051

PS: Diego, vc disse que o comando "não roda", mas não disse qual o
erro retornado.

[]s
Carlos H. Cantu
www.FireBase.com.br - www.firebirdnews.org
www.warmboot.com.br - blog.firebase.com.br

EJ> Olha, este assunto é um pouco polêmico... Acho que talvez seja melhor
EJ> o Cantu responder.

EJ> Em algumas versões do IbExpert, este comando alterava algumas tabelas
EJ> de sistema que poderiam deixar o banco "suspeito". Só dava para ter
EJ> certeza após um backup / restore...

EJ> Na verdade, a forma mais simples de recalcular um índice no firebird é
EJ> "reativar" um índice.

EJ> Nas versões 1.x mesmo que você "desativasse" um índice, algumas "check
EJ> constraints" contiuavam funcionando... Ou seja isto dava uma falsa
EJ> ilusão de que o índice estava desativado.

EJ> Eu sinceramente não gastei tempo estudando este comportamento nas
EJ> versões do Firebird 2.X Mas sei que foram realizadas várias alterações
EJ> na forma como o banco trata os índices....

EJ> ==========================
EJ> Eduardo Jedliczka
EJ> Apucarana - Pr
EJ> ==========================




EJ> Em 4 de julho de 2011 14:00, Oliveira, José Augusto Siqueira de
EJ> <contabil em sivolc.ind.br> escreveu:
>> Eduardo,
>>
>>        No IBExpert versão full, você tem uma opção de active para 
>> utilizar
>> nos índices, que gera a seguinte SQL alter index CONTAS_A_RECEBER_IDX1
>> inactive
>>
>>        Nesse caso não seria uma forma de desativar índices ou na verdade
>> esse comando não "desativa" o índice realmente ?
>>
>>
>> Oliveira, José Augusto Siqueira de
>> Sivolc  Móveis e Complementos
>> (32) 3531-4677
>> contabil em sivolc.ind.br
>>
>> "Aviso de confidencialidade profissional" - Esta mensagem eletrônica e 
>> seus
>> anexos são destinados exclusivamente ao(s) destinatário(s) acima e podem
>> conter informações confidenciais sujeitas a restrição legal de 
>> comunicação
>> entre as partes. Caso tenha recebido esta mensagem por engano, fica V.Sa.
>> ciente de que a distribuição, divulgação ou disseminação das informações
>> aqui contidas ou anexadas é terminantemente proibida, sujeitando o
>> responsável às penalidades aplicáveis. Assim, solicitamos a gentileza de
>> retorná-la de imediato ao remetente, eliminando-a definitivamente de seu
>> sistema. Em caso de dúvida, queira por favor entrar em contato conosco."
>>
>> "Confidentiality notice" - This message and its attachments are addressed
>> solely to the persons above and may contain privileged and confidential
>> communication. If you have received the message in error, the 
>> distribution
>> or dissemination of the content hereof is prohibited. Please return it
>> immediately to the sender and please delete the message from your system 
>> on
>> a permanent basis. Should you have any questions, please contact."
>>
>>
>> -----Mensagem original-----
>> De: lista-bounces em firebase.com.br [mailto:lista-bounces em firebase.com.br] 
>> Em
>> nome de Diego Maccari
>> Enviada em: segunda-feira, 4 de julho de 2011 13:35
>> Para: FireBase
>> Assunto: Re: [firebase-br] [ AJUDA ] Ativar e Desativar Indices ????/
>>
>> Mas alguém poderia dar uma dica aqui ??
>>
>> -----Mensagem Original-----
>> From: Diego Maccari
>> Sent: Monday, July 04, 2011 10:02 AM
>> To: Eduardo Jedliczka
>> Cc: FireBase
>> Subject: Re: [firebase-br] [ AJUDA ] Ativar e Desativar Indices ????/
>>
>> Bom dia Eduardo
>>
>> Obrigado por responder.
>>
>> Olha só peguei esta idéia da FAQ do FireBird, se não estou enganado isso 
>> foi
>> implementado a partir da versão 1.5,
>> veja o link
>> http://www.firebirdfaq.org/faq274/
>>
>>
>> Me corrija caso eu esteja falando bobagem.
>>
>>
>> -----Mensagem Original-----
>> From: Eduardo Jedliczka
>> Sent: Monday, July 04, 2011 9:56 AM
>> To: Diego Maccari ; FireBase
>> Subject: Re: [firebase-br] [ AJUDA ] Ativar e Desativar Indices ????/
>>
>> Não roda.
>>
>> O Firebird não tem o conceito de "ativação / desativação de indices"
>> como no oracle.
>>
>> O correto é droppar todos os índices, e depois recriar os mesmos.
>>
>> Sim, existe uma forma de restaurar o backup com os índices
>> desativados, mas para evitar surpresas, depois de feito isto, também é
>> aconselhável dropar os índices e recriar.
>>
>>
>> ==========================
>> Eduardo Jedliczka
>> Apucarana - Pr
>> ==========================
>>
>>
>>
>>
>> Em 4 de julho de 2011 09:41, Diego Maccari <diegomaccari em ig.com.br>
>> escreveu:
>>> Bom dia Pessoal
>>>
>>> Estou tentando Ativar e Desativar os indices do meu DB/FB 2.5 em uma 
>>> query
>>
>>> com o seguinte SQL:
>>>
>>> SET TERM !! ;
>>>  EXECUTE BLOCK AS
>>>  DECLARE VARIABLE STMT VARCHAR(1000);
>>>  BEGIN
>>>    FOR SELECT 'ALTER INDEX '||RDB$INDEX_NAME ||' ACTIVE;'
>>>      FROM RDB$INDICES
>>>        WHERE RDB$SYSTEM_FLAG IS NOT NULL AND RDB$SYSTEM_FLAG = 0
>>>          INTO :STMT
>>>  DO EXECUTE STATEMENT :STMT;
>>>  END!!
>>>  SET TERM ; !!
>>>
>>> Mas esse SQL não roda, como deve executar este SQL ?
>>>
>>> Att
>>>
>>> Diego M.


______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
Para saber como gerenciar/excluir seu cadastro na lista, use: 
http://www.firebase.com.br/fb/artigo.php?id=1107
Para consultar mensagens antigas: http://firebase.com.br/pesquisa 





Mais detalhes sobre a lista de discussão lista