[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 16:37:49 -03 2013


Não se concentre nas datas, isso já está bem resolvido, a questão é que um
while dentro da procedure segura 100% da CPU pelo tempo que estiver em
processamento. Em muitas linguagens temos comandos como sleep ou
processmessages para dar uma desafogada,  e aqui não estou encontrando
nenhuma.


Gladiston Santana
Departamento de TI
Grupo Vidy
Tel (11) 4787-3122 ramal 228
Rod. Régis Bittencourt 3360 - Km 272,5
Taboão da Serra - SP - CEP: 06793-000
Visite nosso site: www.vidy.com.br
Visite também : www.expolabor.com.br




Em 8 de maio de 2013 13:53, Eduardo Jedliczka <edujed em gmail.com> escreveu:

> Não entendi a sua lógica.
>
> Eu provavelmente teria escrito um
>
> select sum(1) as qtd_dias from tabela where data between data_ini and
> data_fim and dia_util='S'
>
> como você usa uma SP, talvez seja preciso organizar algumas coisas,
> mas basicamente é isto.
>
> ==========================
> Eduardo Jedliczka
> Curitiba - Pr
> ==========================
>
>
> Em 8 de maio de 2013 09:23, Gladiston Santana <gladiston em vidy.com.br>
> escreveu:
> > 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.
> > ______________________________________________
> > 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
>
> ______________________________________________
> 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