[firebase-br] Select muito lento

Diego Bulgarelli diegobulg em gmail.com
Seg Fev 20 13:59:18 -03 2012


Boa tarde! :)

Criou índices para estes campos?
Pode tentar também fazer um backup e restaurar a fim de limpar sujeiras do
banco.

Abraço
Diego Bulgarelli

2012/2/20 Carlos - GMail <krlosgilson em gmail.com>

> Bom dia a todos da lista!
>
> Pessoal estou com um probleminha que to tentando resolver a dias, meu
> select abaixo está demorando muito para retornar os dados, mesmo quando se
> tem apenas um registro, a demora está sendo entre 30 a 60 seg. Tenho muitos
> registros nessas tabelas, mas como mencionei acima mesmo para retornar
> apenas um registro a demora é muito grande. Alguém poderia me dar um dica
> de como aperfeiçoar esse select trazendo os mesmos resultados em um tempo
> menor? Agradeço desde já a todos!
>
> CREATE OR ALTER PROCEDURE SP_REL_RECIBOS_COMISSOES2 (
>    pidempresa integer,
>    pdatainicial date,
>    pdatafinal date,
>    pusuario varchar(10))
> returns (
>    ousuario varchar(10),
>    ovrtaxas numeric(15,2),
>    ovrpgtospacote numeric(15,2),
>    ovrpgtostitulos numeric(15,2))
> as
> begin
>  for
>    select
>    distinct(d.usuario_comis) ousuario,
>    coalesce(sum((select sum(coalesce(s.vr_total,0)) from fichas_servicos s
> left join tb_servicos ts on (s.codigo_servico = ts.ser_cod) where s.id_data
> = d.id and ts.is_taxa = 1)),0) ovrtaxas,
>    coalesce(sum((select sum(coalesce(p.valor,0)) from
> fichas_servicos_pgtos p left join sp_formaspgto f on (p.tipo_pgto = f.oid)
> where p.id_data = d.id and f.ocontabiliza = 1)),0) ovrpgtospacote,
>    0.00 ovrpgtostitulos
>    from fichas_servicos_datas d
>    where (d.data between :pdatainicial and :pdatafinal) and
>    ((:pidempresa = 0) or (d.id_empresa =:pidempresa)) and
>    ((:pusuario = '') or (d.usuario_comis =:pusuario)) and
>    (coalesce(d.status,1) <> 2)
>    group by 1
>  union all
>    select
>    distinct(t.usuario_comis) ousuario,
>    0.00 ovrtaxas,
>    0.00 ovrpgtospacote,
>    sum(coalesce(t.vr_recebido,0)) ovrpgtostitulos
>    from titulos_receber_baixas t
>    left join sp_formaspgto f on (t.tipo_movimento = f.oid)
>    where (t.data between :pdatainicial and :pdatafinal) and
>    ((:pidempresa = 0) or (t.id_empresa =:pidempresa)) and
>    ((:pusuario = '') or (t.usuario_comis =:pusuario)) and
>    (f.ocontabiliza = 1)
>    group by 1
>  into :ousuario, :ovrtaxas, :ovrpgtospacote, :ovrpgtostitulos
>  do suspend;
> 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://firebase.com.br/pesquisa
>



Mais detalhes sobre a lista de discussão lista