[firebase-br] Firebird LENTO
Alisson
alisson em ecosbr.com
Sex Jul 18 11:43:46 -03 2008
faço o seguinte:
no afte insert da tabela de lançamentos executo isso:
EXECUTE PROCEDURE sp_atualiza_saldos_insert(NEW.CODIGO);
que faz isso abaixo:
begin
Select Extract(Year From DATA),Extract(Month From DATA),
contad,centd,contac,centc,valor
from LANCAM
Where codigo=:IDLANCAMENTO
into :ANO,:MES,
:CONTAD,:CENTD,:CONTAC,:CENTC,:VALOR;
--para não atualizar com null
if (valor is null) then valor=0;
For select contas from SP_RETORNA_CONTA(:CONTAD) INTO :CONTAS DO Begin
select saldos.saldo from saldos Where CONTA=:CONTAS And Ano=:ANO And
Mes=:MES into :SALDOATUAL;
--atualiza saldos do ano corrente e posterior
Update SALDOS S Set S.SALDO=(s.saldo-:VALOR)
Where CONTA=:CONTAS And ((Ano=:ANO And Mes>=:MES) or (Ano>:ANO And
Mes>=1));
--atualiza debitos
Update SALDOS S Set S.DEBITO=(S.DEBITO+:VALOR)
Where CONTA=:CONTAS And Ano=:ANO And Mes=:MES;
End
For select contas from SP_RETORNA_CONTA(:CONTAC) INTO :CONTAS DO Begin
select saldos.saldo from saldos Where CONTA=:CONTAS And Ano=:ANO And
Mes=:MES into :SALDOATUAL;
--atualiza saldos do ano corrente e posterior
Update SALDOS S Set S.SALDO=(s.saldo+:VALOR)
Where CONTA=:CONTAS And Ano=:ANO And ((Ano=:ANO And Mes>=:MES) or
(Ano>:ANO And Mes>=1));
--atualiza creditos
Update SALDOS S Set S.CREDITO=(S.CREDITO+:VALOR)
Where CONTA=:CONTAS And Ano=:ANO And Mes=:MES;
End
end
a porcedure SP_RETORNA_CONTA(:CONTAC) faz o controle de níveis.
retorna as contas que devem ser atualizadas
1.1.1.01.001
1.1.1.01
1.1.1
1.1
1
----- Original Message -----
From: "marcelo - teflamar" <marcelo em teflamar.com.br>
To: "FireBase" <lista em firebase.com.br>
Sent: Friday, July 18, 2008 11:24 AM
Subject: Re: [firebase-br] Firebird LENTO
melhor ainda:
pelo movimento some todos os débitos, some todos os créditos agrupados
por conta, nas contas analíticas.(seu nível 5).
totalize os níveis sintéticos (nivel 4 no seu caso)
calcule o nível 3 pelo nível 4, o nível 2 pelo nível 3, o nível 1 pelo
nível 2. pronto, tá contabilizado.
marcelo luiz stefaniak
Eduardo Pelizzari de Andrade escreveu:
> Faça ao contrário, de um for select para pegar os valores de cada conta,
> depois de um update apenas em cada conta, o processo será muito mais
> rápido.
>
> Eduardo Pelizzari de Andrade
> Persoft Softwares Aplicativos
>
>
>
>
> Alisson escreveu:
>
>> olha a coisa tá feia aqui.
>> Tem um processo que está levando cerca de 30 minutos!
>>
>> é um sistema de contabilidade.. para a migração ficar mais rápida eu
>> primeiro transfiro os lançamentos da tabela DBF
>> sem que sejam calculados os saldos das contas. após tranferir cerca de
>> 21.000 registros(lançamentos contábeis) eu disparo uma rotina para
>> reprocessar os lançamentos ou seja: Pegar o valor de cada lançamento e
>> atualizar o saldo da conta débito e conta credito. porém plano de contas
>> tem
>> essa estrutura:
>> EX:
>> 1
>> 1.1
>> 1.1.1
>> 1.1.1.01
>> 1.1.1.01.001( os lançamentos são nessa conta, mas todos os níveis acima
>> devem ser atualizados os saldos tambem);
>>
>> porém estou achando 30 minutos d+!
>>
>> Abraços!
>> Alisson Marcel
>>
>>
>>
>> ----- Original Message -----
>> From: "Gustavo Moda" <gustavo.moda em gmail.com>
>> To: "FireBase" <lista em firebase.com.br>
>> Sent: Thursday, July 17, 2008 4:51 PM
>> Subject: Re: [firebase-br] Firebird LENTO
>>
>>
>> Alisson,
>>
>> Verifique se nos updates o where possui indice.
>> Isso deixa muito lento.
>>
>> ______________________________________________
>> 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
>
>
>
______________________________________________
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
--
No virus found in this incoming message.
Checked by AVG.
Version: 7.5.524 / Virus Database: 270.5.0/1555 - Release Date: 16/07/2008
06:43
Mais detalhes sobre a lista de discussão lista