[firebase-br] SQL Doido

Nobyte X clovis.007x em gmail.com
Sábado Junho 19 13:41:09 -03 2021


Muito lento 2minutos para trazer 20k de registros, isso é por conta de
executsr no delphi?

Em sáb, 19 de jun de 2021 13:16, José Mauricio Barbisan Zottis via lista <
lista em firebase.com.br> escreveu:

> o teste sem Cód Cliente
> Obtidos 23723
>
> ------ Info. Desempenho ------
> Tempo de Preparação = 31ms
> Tempo de Execução = 1m 56s 672ms
> Tempo Médio Leitura = 5.072,70 ms
> Memória Actual = 30.248.424
> Memória Max = 44.449.920
> Buffers de Memória = 2.048
> Leituras do disco para a Memória Intermédia = 140.656
> Escritas da Memória Intermédia para o disco = 137
> Leituras da Memória Intermédia = 1.884.583
>
>
> Em sáb., 19 de jun. de 2021 às 12:58, José Mauricio Barbisan Zottis <
> zottissistemas em gmail.com> escreveu:
>
> > Opa, agradeço pelo retorno, o peso que se refere, não acontece, fiz um
> > teste sem o uso de parâmetros e o retorno foi satisfatório, e olhe que a
> > base é grande.
> > também fiz o teste com AsString
> > fiz teste usando cast para varchar, numeric, etc.
> >
> > fiz vários SQL, fazendo pequenas Views no Banco e juntando, também nada
> > funcionou, inverti a lógica e aparece os dados, mas quando rodo no
> Delphi,
> > não aparece
> > O SQL que pelo menos aparece a descrição ´pe este, mas a soma do peso não
> > aparece.
> > tentei também com between, com <= e <= e nada
> >
> > select (select d.descricao from descricao_residuos d where d.codigo =
> > v.cod_descricao)descricao,
> >        (select sum(f.peso_coletado) from far_mtr f where f.cod_cliente =
> > v.cod_cliente and f.cod_valores_cliente = v.codigo and f.data_coleta >=
> > :vardataI and f.data_coleta <= :vardataF ) peso,
> >       cast( round((select sum(f.peso_coletado) from far_mtr f where
> > f.cod_cliente = v.cod_cliente and f.cod_valores_cliente = v.codigo and
> > f.data_coleta >= :vardataI and f.data_coleta <= :vardataF ),2)as
> > varchar(30)) peso2
> >   from valores_cliente v
> >   where v.cod_cliente = :varCodCliente
> >
> >
> > Em sáb., 19 de jun. de 2021 às 12:21, Mário Reis via lista <
> > lista em firebase.com.br> escreveu:
> >
> >> Duvido da eficiência desse teu código companheiro. Deve ter um peso
> >> tremendo. Eu partiri esse query em vários outros mais pequenos e
> >> dependentes, mas enfim!
> >> Ainda assim, arriscaria que o problema está aqui:
> >>              *ParamByName('vardataI').AsDate  *       :=
> >>                  dtpPeriodoColeta1.Date;
> >>              ParamByName('vardataI').AsDate
> >>                  dtpPeriodoColeta2.Date;
> >> Não sei que componentes usa, mas tb já tive um problema idêntico e
> >> resolvi, passando o parâmetro data como AsString
> >> em vez de AsDate e funcionou. Até hoje faço assim com os componentes do
> >> TIBDatabase... TIBQuery etc...
> >> P/favor tente e nos diga o resultado.
> >> Espero ter ajudado. Obrigado
> >>
> >> Com os meus melhores cumprimentos
> >> Mário Agostinho Reis
> >> 919262146
> >>
> >> Esta mensagem contém informação de natureza confidencial e é
> >> exclusivamente dirigida ao(s) destinatário(s) indicado(s). Se, por
> engano,
> >> receber este email agradecemos que não o copie nem o reenvie e que nos
> >> notifique do ocorrido através do email de resposta.
> >>
> >>
> >> José Mauricio Barbisan Zottis via lista <lista em firebase.com.br>
> escreveu
> >> no
> >> dia sexta, 18/06/2021 à(s) 23:16:
> >>
> >> > Pessoal, boa noite.
> >> > Tenho um SQL que já tentei de tudo quanto é jeito e todas as
> tentativas
> >> via
> >> > IBEx´pert da certo, porém quando passo pro componente no Delphi(7) não
> >> > aparece nada.
> >> > Alguém saberia o que pode estar acontecendo?
> >> >
> >> > o SQL é este:
> >> >
> >> > select v.cod_cliente,
> >> >        sum(v.peso_coletado)peso_coletado,
> >> >        v.descricao
> >> >   from
> >> > (select f.cod_cliente,
> >> >        f.peso_coletado,
> >> >        f.data_coleta,
> >> >        f.cod_valores_cliente,
> >> >       (select dr.descricao from descricao_residuos dr where dr.codigo
> =
> >> > (select v2.cod_descricao from valores_cliente v2
> >> >                             where v2.codigo =
> >> > f.cod_valores_cliente))descricao
> >> > from far_mtr f)v
> >> > where v.cod_cliente = :varCodCliente
> >> >   and v.data_coleta between :vardatai and :vardataf
> >> >   group by v.cod_cliente,
> >> >            v.descricao
> >> >
> >> > , no componente chamo assim(Como faço hà anos)
> >> >
> >> >          with qryColetasAgrup do
> >> >            begin
> >> >              Close;
> >> >              ParamByName('varCodCliente').AsInteger :=
> >> > qryBuscaCOD_CLIENTE.Value;
> >> >              ParamByName('vardataI').AsDate         :=
> >> > dtpPeriodoColeta1.Date;
> >> >              ParamByName('vardataI').AsDate         :=
> >> > dtpPeriodoColeta2.Date;
> >> >              Prepare;
> >> >              Open;
> >> >            end;
> >> >
> >> > --
> >> > ______________________________________________
> >> > 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://www.firebase.com.br/pesquisa_lista.html
> >> >
> >> ______________________________________________
> >> 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://www.firebase.com.br/pesquisa_lista.html
> >>
> >
> >
> > --
> >
> >
>
> --
> ______________________________________________
> 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://www.firebase.com.br/pesquisa_lista.html
>


Mais detalhes sobre a lista de discussão lista