[firebase-br] Otimização de SQL
Henrique Ribeiro
kikeribeiro em gmail.com
Sex Set 27 12:42:30 -03 2013
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
Mais detalhes sobre a lista de discussão lista