From: | Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org> |
---|---|
To: | Vida Luz Arista <vida(dot)arista(at)ideay(dot)net(dot)ni> |
Cc: | pgsql-es-ayuda(at)postgresql(dot)org |
Subject: | Re: Tuning auna consulta |
Date: | 2009-07-16 23:32:01 |
Message-ID: | 20090716233200.GC5203@alvh.no-ip.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
Vida Luz Arista escribió:
> Hola a todos,
>
>
>
> Tengo un problema con una consulta, uno de los chicos de desarrollo, tiene
> una consulta que se hace pesada, y esta tarde como unos 2 minutos, lo más
> extraño es que no hay muchos registros y estos es demasiado tiempo sobre
> todo porque aun son pocos registros, me asusta porque cuando la BD crezca
> esto va ser demasiado tiempo, en esta consulta se trabaja con 15 tablas, la
> consulta se las dejo y les pido sugerencias para mejorar la consulta o si es
> posible partirla.
Como no dijiste que versión de Postgres estás usando, voy a adivinar que
es algo anterior a 8.2, en la cual se introdujo la posibilidad de
reordenar algunos OUTER JOIN ... creo que te beneficiarías mucho de eso,
puesto que la consulta involucra una cantidad obscena de ellos.
Una cosa que podrías verificar es si realmente necesitas que sean LEFT
JOIN, y si no, conviertelos en inner joins, porque son más optimizables
que los INNER.
Lo otro es que aún en 8.2 o superior posiblemente te convenga jugar con
los parámetros from_collapse_limit y join_collapse_limit (creo que así
se llaman). Dale una leída a su documentación y auméntalos un poco a
ver si encuentra un plan mejor.
Finalmente, se nota que hay un problema de estimación en este left join:
->Hash Left Join (cost=833.45..3424.85 rows=33810 width=433) (actual time=43.485..4863.803 rows=603936 loops=1)
Hash Cond: (lic.id_estado_pago = ep.id_estado_pago)
A eso hay que echarle una mirada; quizás sea cosa de aumentar las
estadísticas involucradas.
Ahora voy saliendo por el fin de semana, así que suerte con este
problema ...
--
Alvaro Herrera http://www.amazon.com/gp/registry/3BP7BYG9PUGI8
"La gente vulgar sólo piensa en pasar el tiempo;
el que tiene talento, en aprovecharlo"
From | Date | Subject | |
---|---|---|---|
Next Message | Emanuel Calvo Franco | 2009-07-16 23:38:27 | Re: caracteristicas unicas de postgresql |
Previous Message | Jaime Casanova | 2009-07-16 22:50:10 | Re: Tuning auna consulta |