Re: ayuda con optimizacion de consulta

From: Alvaro Herrera <alvherre(at)dcc(dot)uchile(dot)cl>
To: Martin Marques <martin(at)bugs(dot)unl(dot)edu(dot)ar>
Cc: Arturo Llanquihuén Martinez <arturo(at)llanquihuen(dot)cl>, pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: ayuda con optimizacion de consulta
Date: 2004-09-09 00:30:40
Message-ID: 20040909003040.GD9861@dcc.uchile.cl
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

On Wed, Sep 08, 2004 at 05:36:29PM -0300, Martin Marques wrote:
> El Mié 08 Sep 2004 15:17, Arturo Llanquihuén Martinez escribió:

Martin, Arturo,

> >
> > CREATE INDEX index_patente
> > ON mm_ruta
> > USING btree
> > (rut_uni_patente);
>
> Agrega un índice en rut_uni_patente también.

Eso es lo que esta aqui, no?

> > la consulta:
> >
> > select rut_latlong,rut_uni_patente,oid from mm_ruta
> > where rut_id in (select max(rut_id)
> ^^^^^^^^^^^
> rut_id es un PK, por lo tanto no tiene datos duplicados. Para que lo pones en
> un IN ()? Y porque buscas el máximo?

El punto es encontrar la ruta mas reciente para un determinado vehiculo.
La suposicion de que sera la ruta con el mayor rut_id me parece un poco
arriesgada ...

> Que tal si probas con:
>
> SELECT rut_latlong,rut_uni_patente FROM mm_ruta
> WHERE rut_id = currval('mm_ruta_rut_id_seq') AND
> rut_uni_patente IN ('PK-3513','SA-2633','PH-3317')
>
> (lo acorte un poco).
> esto siempre que lo hagas despues un una insersion en la que se busque el
> valor por defecto de rut_id (para que se llame a
> nextval('mm_ruta_rut_id_seq')).

No necesariamente funciona, porque quien hizo la insercion no sera el
mismo que haga la consulta.

--
Alvaro Herrera (<alvherre[a]dcc.uchile.cl>)
"Sallah, I said NO camels! That's FIVE camels; can't you count?"
(Indiana Jones)

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Guillermo Garcia A. 2004-09-09 00:45:35 Uso de un index especifico
Previous Message Alvaro Herrera 2004-09-09 00:04:39 Re: Replicacion?