[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