[firebase-br] rotina numa procedure contendo um while eleva o uso da cpu para 100%

Gladiston Santana gladiston em vidy.com.br
Qua Maio 8 09:23:38 -03 2013


Tenho uma rotina numa procedure que contem um while, em parte é assim :

  while (l_dias_uteis < p_qtde_dias) do
  begin
    l_temp_date=dateadd(1 day to :p_dt_inicio);
    select dia_util from get_se_dia_util(:p_id_colaborador, :l_temp_date)
into :l_se_util;
    if (:l_se_util='S') then l_dias_uteis=:l_dias_uteis+1;
  end

Funciona bem, contudo quando há períodos maiores onde o while terá também
um tempo maior de processamento noto que o % de uso da CPU sobe para 99 e
100% enquanto o while ocorre.

Eu gostaria de saber dos nobres colegas se há alguma função no FB ao estilo
"Application.ProcessMessages" para desafogar esse ciclo de CPU. Procurei no
manual, mas não achei nenhum.

Numa aplicação embarcada que estou criando, esse problema é bem notório e
já cogito re-escrever essa rotina no lado da aplicação.

Enfim, qualquer ajuda é bem vinda.



Mais detalhes sobre a lista de discussão lista