Tengo entendido que distinct es maligno para las consultas en donde el
resultado tiene muchos datos, incluso con subconsultas tenés mejor
performance.


Guillermo Villanueva
<http://ar.linkedin.com/in/guillermovillanueva>


El 26 de febrero de 2013 15:57, Jaime Casanova <ja...@2ndquadrant.com>escribió:

> 2013/2/26 Santiago Bravo <sbrav...@gmail.com>:
> > Hola a todos, tengo una consulta que solo me devuelve 3 registros pero
> >  se me demora alrededor de 3 min, la consulta en si es:
> >
> > select distinct idregdocum, nombrelargo
> > from fin_documento d
> > inner join  fin_regdocum r on r.idregdocum = d.idregdoc
> > inner join fin_obligacion o on d.iddocumento = o.iddocumento
> > where r.ingresoegreso = -1
> >
>
> Que versión de postgres es esta? puedes mostrar el plan de ejecucion?
> que pasa si cambias el distinct por un "GROUP BY idregdocum,
> nombrelargo" al final de la consulta?
> prueba con esta consulta que te pongo y mira si es mejor o peor (o si
> devuelve los datos apropiados)
>
> select distinct idregdocum, nombrelargo
> from fin_documento d
> inner join  fin_regdocum r on r.idregdocum = d.idregdoc
> where r.ingresoegreso = -1
>    and exists(select true from fin_obligacion o where o.iddocumento =
> d.iddocumento)
>
> --
> Jaime Casanova         www.2ndQuadrant.com
> Professional PostgreSQL: Soporte 24x7 y capacitación
> Phone: +593 4 5107566         Cell: +593 987171157
>
> -
> Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda@postgresql.org
> )
> Para cambiar tu suscripción:
> http://www.postgresql.org/mailpref/pgsql-es-ayuda
>

Responder a