Re: Dudas con "distinct"

From: Santiago Bravo <sbravomp(at)gmail(dot)com>
To: pgsql-es-ayuda <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: Dudas con "distinct"
Date: 2013-03-01 12:27:08
Message-ID: CAOZnoEEx0Lq2z8DiW8CkDMhzf9H6y1ssr9_fFiTuRJepkan8fw@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Hola a todos, ante todo muchas gracias por sus opiniones, les contaré
que todo se resolvió al declarar a la clave principal de la tabla
fin_documento (iddocumento) como un indice agrupado, solo con eso el
resultado me lo da casi inmediatamente.
Santiago

El 28/02/13, Marcos Héctor Trotti <marcostrotti(at)gmail(dot)com> escribió:
> Capaz este link pueda ayudarte a mejorar la performance de las consultas
> con distinct
>
> http://explainextended.com/2009/05/03/postgresql-optimizing-distinct/
>
>
> El 28 de febrero de 2013 08:42, Guillermo E. Villanueva <
> guillermovil(at)gmail(dot)com> escribió:
>
>> 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
>> <jaime(at)2ndquadrant(dot)com>escribió:
>>
>>> 2013/2/26 Santiago Bravo <sbravomp(at)gmail(dot)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(at)postgresql(dot)org)
>>> Para cambiar tu suscripción:
>>> http://www.postgresql.org/mailpref/pgsql-es-ayuda
>>>
>>
>>
>
>
> --
> *Marcos Héctor Trotti*
>

-
Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda(at)postgresql(dot)org)
Para cambiar tu suscripción:
http://www.postgresql.org/mailpref/pgsql-es-ayuda

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Eveling Velásquez 2013-03-01 15:03:11 Encriptar carpeta de datos
Previous Message Alejandro Carrillo 2013-02-28 20:33:18 Re: Encriptar campo