[firebase-br] Lentidão

Jose Luiz de Medeiros joseluiz em digitoneletronica.com.br
Seg Maio 13 22:28:05 -03 2013


boa noite.
tenho essa rotina para inserir uns registros em uma tabela:
if not(qry.IsEmpty)then   begin      qry.First;     while not qry.eof do   
   begin         qry2.Close;         qry2.SQL.Clear;         try        
qry2.SQL.Add('INSERT INTO ITEM_PROD_TFL(ID_TFL,ID_PROD,ABRE,REPOE,SAIDA,' +
                     '
SALDO,VENDA,ID_TERMINAL,ID_EMPRESA,ID_USER,TIPO)VALUES(:TFL,:PRODUTO,' +   
                  ' :ABRE,0,0,:SALDO,0,:TERMINAL,:EMPRESA,:USER,:TIPO)');  
      qry2.Params[0].AsInteger:=IBCadastro.FieldByName('ID').AsInteger;    
    qry2.Params[1].AsInteger:=qry.FieldByName('ID_PRODUTO').AsInteger;     
   qry2.Params[2].AsInteger:=qry.FieldByName('ESTOQUE').AsInteger;        
qry2.Params[3].AsInteger:=0;        
qry2.Params[4].AsInteger:=IBCadastro.FieldByName('ID_TERMINAL').AsInteger; 
      
qry2.Params[5].AsInteger:=IBCadastro.FieldByName('ID_EMPRESA').AsInteger;  
     
qry2.Params[6].AsInteger:=IBCadastro.FieldByName('ID_USER').AsInteger;     
   qry2.Params[7].AsString:=qry.FieldByName('CEF').AsString;        
qry2.ExecSQL;         qry.Next;          except          showmessage('Erro
ao inserir item tfl');            end;          end;        
DM.IBTrans.CommitRetaining;           end;
Com esse laço insiro 25 registros na tabela item_prod_tfl, essa tabela já
tem 17200 registros. esse insert demora uns 2 minutos aqui usando firebird
2.1 no windows xp ou windows é uns 3 minutos usando o firebird 2.5 no
windows 8. esse mesmo procedimento quando a tabela estava menor rodava em
alguns segundos. é normal essa lentidão?já fiz backup e restore pelo
ibexpert e não resolveu...

grato:
 Jose Luiz de Medeiros
-----------------------------------
Programmer & TI Professional
:: delphi - php - firebird - mysql ::
(31)9628-4764




Mais detalhes sobre a lista de discussão lista