No olvidar revisar si en el where se esta filtrando por los índices, en 
preferencia indices unicos. Además cambiar consultas in por exists, o en el 
mejor de los casos, pasarlas a subconsultas de tabla (el motor ejecuta las 
consultas de tabla solo una vez a no ser q tenga un campo de una tabla fuera de 
la subconsulta).Ej:
Una consulta asi:
Select * from tabla1 t1 where t1.campoA in (select t2.campoA from tabla2 t2 
where t2.estado !='E' and t2.fechainicial < 20120415)

Puede pasar a asi:
Select * from tabla1 t1, (select t2.campoA from tabla2
 t2 where t2.estado !='E' and t2.fechainicial < 20120415) tk where t1.campoA = 
tk.campoA;


O una consulta asi:
Select * from tabla1 t1 where exists (select 
t2.campoA from tabla2 t2 where t2.estado !='E' and t2.fechainicial < 
20120415 and t2.campoA = t1.campoA)

Puede pasar a asi:
Select * from tabla1 t1, (select t2.campoA from tabla2
 t2 where t2.estado !='E' and t2.fechainicial < 20120415) tk where t1.campoA = 
tk.campoA;


O una consulta asi:
Select * from tabla1 t1 where not exists (select 
t2.campoA from tabla2 t2 where t2.estado !='E' and t2.fechainicial < 
20120415 and t2.campoA = t1.campoA)

Puede pasar a asi:
Select * from tabla1 t1 left join (select t2.campoA from tabla2
 t2 where t2.estado !='E' and t2.fechainicial < 20120415) tk on t1.campoA = 
tk.campoA where t1 is null;


Y los tiempos de ejecución y el costo de las consultas se disminuyen 
drásticamente.




>________________________________
> De: Juan <[email protected]>
>Para: ferd agu <[email protected]> 
>CC: [email protected] 
>Enviado: Miércoles 5 de septiembre de 2012 19:06
>Asunto: Re: [pgsql-es-ayuda] consulta que demora demasiado
> 
>
>Fernando
>
>
>Explain analyze es tu amigo.. 
>http://www.postgresql.org/docs/9.1/static/sql-explain.html 
>salu2
>jmdc
>
>
>2012/9/5 ferd agu <[email protected]>
>
>Estimada gente,
>>
>>he escrito una consulta en postgresql 8.2, y me esta demorando demasiado 
>>tiempo en arrojarme los
>>resultados.
>>Podrian indicarme si hay alguna forma de depurar la consulta o ver donde esta 
>>el cuello de botella?
>>desde ya muy agradecido por sus respuestas!
>>
>>Saludos
>>
>>Fernando
>>
>>
>>
>
>
>

Responder a