[firebase-br] sql demorando muito

Eduardo Jedliczka edujed em gmail.com
Sáb Jun 18 10:51:48 -03 2011


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
>




Mais detalhes sobre a lista de discussão lista