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)
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? |