Olá pessoal,
Seguinte
precisei criar umas rotinas em sql pra rodar elas no braço pra atualizar um volume grande de informações
e axei melhor criar varios updates e ir executando eles na sequencia um do outro e tals…
como padrao fiz um select e no resultado do select faço os updates…
meu select ficou assim mais ou menos
select [campos]
from tabela t
inner join t_item ti on ti.ide = t.ide
inner join i_item_especial itp on itp.ide_p = ti.ide_p
where [condições]
e demorava um minuto pra rodar...
entao fiz
select [campos]
from tabela t
inner join t_item ti on ti.ide = t.ide
where [condições]
and ti.ide_p in (select ide_p from i_item_especial)
e demorou muito tambm
dai resolvi apelar a sorte
select [campos]
from tabela t
inner join t_item ti on ti.ide = t.ide
left outer join i_item_especial itp on itp.ide_p = ti.ide_p
where [condições]
and coalesce(itp.ide_p,'') <> ''
me digam por que a ultima consulta foi instantanea!!!
tá não vou mentir
3 segundos
mas sendo que todas outras demoravam 15,30,50 segundos
a base esta no postgres 8.04
valeu!!