[firebase-br] RES: sql demorando muito

Felix felix.sol em terra.com.br
Sáb Jun 18 11:11:56 -03 2011


Realmente, 'muito' 'pouco' é relativo... mas

Cara, em que ponto está a 'demora' ? Porque vc postou um monte de rotinas,
poderia informar qual está realmente lenta?

E, nesta aqui:
> procedure TF_Estorno.estorno_receber;
Não tem condição para 'where' ? Pelo que notei, todos os registros da tabela
serão alterados, é isso mesmo?

Fco. Felix
Desenvolvimento de Sistemas
www.soltecnologia.com.br

-----Mensagem original-----
De: lista-bounces em firebase.com.br [mailto:lista-bounces em firebase.com.br] Em
nome de Eduardo Jedliczka
Enviada em: sábado, 18 de junho de 2011 10:52
Para: FireBase
Assunto: Re: [firebase-br] sql demorando muito

sem term uma idéia da estrutura das tabelas (campos, índices,
quantidade de registros) e do PLAN gerado, não dá para ajudar muito.

Além do mais, "demorando muito" é algo muito subjetivo.

Por exemplo: se numa tabela de 5 mil registros retornar 50 registros,
posso achar que 5 segundos foi uma eternidade, mas pode ser que outras
pessoas achem que foi "muito rápido".

Mas só para iniciar a conversa, existe algum índice para o campo RECEBIMENTO
?

==========================
Eduardo Jedliczka
Apucarana - Pr
==========================


Em 18 de junho de 2011 10:23, Reijanio Nunes Ribeiro
<rnribeiro em gmail.com> escreveu:
> bom dia a todos estou om um pequeno problema que é mais ou menos assim,
> tenho uma rotina de estorno que faz o seguine
>
> SELECT DISTINCT R.CODCLIENTE, C.NOME, R.FAT_NUM,
> R.VLRECEBIDO, R.NUMDOC,R.LANCAMENTO FROM CONTASRECEBIDAS R
> INNER JOIN CLIENTE C
> ON R.CODCLIENTE = C.CODIGO
> WHERE RECEBIMENTO BETWEEN :DT1 AND :DT2
>
> e a chamada é da seguinte forma aqui recebos registros de da tabela contas
> recebidas
> Estorno.close;
> Estorno.Params.ParamByName('DT1').AsDate := dte1.Date;
> Estorno.Params.ParamByName('DT2').AsDate := dte2.Date;
> Estorno.Open;
> dbgrid1.DataSource := DsEstorno;
>
> para pegar o valor semelhante na tabela de contas receber que será
alterado
> tenho esta senteça
>
> procedure TF_Estorno.receber;
> begin
> f_dmm.Geral.close;
> f_dmm.Geral.CommandText := 'select * from contasreceb where numdoc =
:pdoc';
> f_dmm.Geral.Params.ParamByName('PDOC').AsString := Estornonumdoc.AsString;
> f_dmm.Geral.Open;
> Edit1.Text := f_dmm.Geral.FieldByName('FAT_NUM').AsString;
> Edit2.Text := CurrToStr(f_dmm.Geral.FieldByName('vlrtotal').AsCurrency);
> Edit3.Text := CurrToStr(f_dmm.Geral.FieldByName('vlrecebido').AsCurrency);
> Edit4.Text := CurrToStr(f_dmm.Geral.FieldByName('vlrestante').AsCurrency);
> Edit5.Text := CurrToStr(Estorno.FieldByName('vlrecebido').AsCurrency);
> end;
>
>
> e para estornar tenho a seguinte sentença
>
> procedure TF_Estorno.estorno_receber;
> begin
> f_dmm.Geral.Close;
> f_dmm.Geral.CommandText := 'UPDATE CONTASRECEB SET FAT_NUM  = :PFAT,
> VLRECEBIDO = VLRECEBIDO - :PREC,'+
> ' VLRESTANTE = VLRESTANTE + :PREST, STATUS =:PS';
> f_dmm.Geral.Params.ParamByName('PFAT').AsString := Edit1.Text;
> f_dmm.Geral.Params.ParamByName('PREC').AsCurrency :=
StrToCurr(Edit5.text);
> f_dmm.Geral.Params.ParamByName('PREST').AsCurrency :=
StrToCurr(Edit5.text);
> f_dmm.Geral.Params.ParamByName('PS').AsString := 'P';
> f_dmm.Geral.Execute;
>  Estorno.Delete;
>  Estorno.ApplyUpdates(0);
> end;
>
> alguem pode me ajudar
> ______________________________________________
> 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