[firebase-br] CPU 100% em INSERT

Evandro vansiqq em oi.com.br
Seg Jul 11 12:05:48 -03 2005


Pessoal,

Tô com um pequeno probleminha, em um trecho de código simples, mas q me vem torrando a paciência. É o seguinte:

É um processo batch em que o sistema lê um TXT vindo de cada catraca de acesso e insere os dados no Firebird.

tenho uma IBSQL com a seguinte instrução:

        SQL.Clear;
        SQL.Add('INSERT INTO SAFCONC');
        SQL.Add('(RELOGIO, CRACHA, DATA, HORA, FUNCAO, SEQUENC)');
        SQL.Add('VALUES ( :RE, :CR, :DT, :HR, :FU+'",:SE) );

O código é o seguinte:

        begin
          application.processMessages;
          self.repaint;
        end;
        if not trInsConc.InTransaction then
          trInsConc.StartTransaction;
        try
          with ibqryInserirSafConc do
          begin
            Close;
            Params[0].AsFloat    := SEQ1;
            Params[1].AsString   := RE;
            Params[2].AsFloat    := CR1;
            Params[3].AsString   := DT;
            Params[4].AsString   := HR;
            Params[5].AsString   := TP;
            Params[6].AsSmallInt := StrToInt(vLocalRel);
          end;
          ibqryInserirSafConc.ExecSQL;
          Inc( iCount );
          if iCount <= i_qtd_registros_pra_commit then
            trInsConc.CommitRetaining
          else
          begin
            iCount := 0;
            trInsConc.Commit;
          end;

i_qtd_registros_pra_commit é uma variável onde posso informar o número de registros para dar o commit. o padrão é 500. 

Mas ja tentei de 1 a 2000 e o resultado é o mesmo. A rotina começa bem e a medida que o processo adianta toda a rede vai se degradando, o consumo de CPU do cliente e do servidor chega a 100% e finalmente estou com cinco portarias totalmente inoperantes.

Este é um dos modulos de um sistema de controle de acesso em uso em uma empresa de comunicações, onde se controla o acesso de 5 portarias distribuidas na cidade.

Utilizo neste sistema, Delphi 5 com Firebird 1.5 e uso a paleta IBX.

Qualquer ajuda será bem vinda.

[]'s a todos e uma ótima semana.

Evandro Siqueira
Programador
Recife/PE



Mais detalhes sobre a lista de discussão lista