[firebase-br] Otimização de SQL

Samuel Peres Ferreira samuel.peres.ferreira em gmail.com
Sex Set 27 12:58:26 -03 2013


ola

troca o 'not in' por 'not exists'



Em 27 de setembro de 2013 12:42, Henrique Ribeiro
<kikeribeiro em gmail.com>escreveu:

> 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
>



-- 
     Samuel Peres Ferreira
Staff Consultoria em Informatica
  44-3028-3735    44-9972-6177



Mais detalhes sobre a lista de discussão lista