[firebase-br] Otimização de SQL

Jaelson jaelsonwagner em gmail.com
Sex Set 27 14:42:06 -03 2013


Boa tarde.
Acho que a performe será melhor com *not exists*
A ordenação também tem impacto dependendo da quantidade retornada.

http://fpaste.org/42755/80303654/

*Jaelson Wagner da Silva *
*Analista Desenvolvedor de Sistemas/Redes*


2013/9/27 Henrique Ribeiro <kikeribeiro em gmail.com>

> Boa tarde colegas,
>
> Apresento um script que rodo em meu banco Firebird 2.1.1.17910(Win32) e
> leva mais de 30 segundos para retornar os valores.
>
> Se alguém tiver uma sugestão no sentido de otimizá-lo, agradeço
> antecipadamente.
>
> select distinct  pessoa.pes_codigo "Cod Cliente", pessoa.pes_nome "Nome do
> cliente", pesrep.pes_cod_repres "Cód. Rep.", pessoa.pes_endere,
> bairro.bar_nome "Bairro", cidade.cid_nome "Cidade", pessoa.pes_fone,
> pessoa.pes_fone2,  pessoa.pes_fone3, pessoa.pes_contat,
> pessoa.pes_consignado, pessoa.pes_condata, pessoa.pes_condescricao,
> pessoa.pes_conexpositor, nota.nf_numero, nota.ped_numero, nota.nf_valtotal,
> nota.nf_valsubs, nota.nf_dtsaida  from nota  inner join pessoa on
> (nota.pes_cod_cli = pessoa.pes_codigo)  inner join pesrep on
> (pessoa.pes_codigo = pesrep.pes_cod_cliente)  left outer join bairro on
> (pessoa.bar_codigo = bairro.bar_codigo)  left outer join cidade on
> (bairro.cid_codigo = cidade.cid_codigo)
> where pessoa.pes_codigo not in (select nota.pes_cod_cli from nota  where
> nota.nf_dtsaida Between '10/01/2011' AND '11/30/2011'
> )
>  and nota.nf_numero = (Select max(x.nf_numero) from nota x where
> x.pes_cod_cli = nota.pes_cod_cli AND x.nf_dtsaida not Between '10/01/2011'
> AND '11/30/2011')
> ORDER BY PESSOA.PES_NOME, nota.nf_dtsaida
>
>
> Obrigado e um excelente final de semana para todos.
> Henrique
> ______________________________________________
> 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