RE: Re: [pgsql-es-ayuda] No usa índice

From: Henry <hensa22(at)yahoo(dot)es>
To: Raul Andres Duque <ra_duque(at)yahoo(dot)com(dot)mx>, sergio carrasco <a882sacl(at)yahoo(dot)com(dot)ar>, pgsql-es-ayuda(at)postgresql(dot)org
Subject: RE: Re: [pgsql-es-ayuda] No usa índice
Date: 2007-09-12 02:07:11
Message-ID: 631894.89480.qm@web30803.mail.mud.yahoo.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda


--- Raul Andres Duque <ra_duque(at)yahoo(dot)com(dot)mx>
escribió:

> Gracias Sergio ... buen dato ... sin embargo no sé
> como creaste ese indice
> "casteado". Intenté con:
>
> CREATE INDEX idx_movimiento_fecha
> ON postgresql.def_movimiento
> USING btree
> (fecha_movimiento::date);

hola,
talvez ponle doble paréntesis

CREATE INDEX idx_movimiento_fecha
ON postgresql.def_movimiento
USING btree
((fecha_movimiento::date));

ahora que no utilize un indice depende mucho de la
cantidad de registros que te va retornar la consulta,
ya que si va a retornar un gran cantidad de
registro(relativo a la cantidad de registros de las
tablas, y tambien a la cantidad de registros que
existan en un momento en las tablas) el planeador va
a preferir utilizar un seqscan que utilizar index
cond, ya que es menos costoso.

por ende a veces es mas costoso utilizar el index que
un seqscan.

si no pruebas en algunos casos en que pienses que una
consulta debe utilizar index pero esta utilizando
sqscan, antes de correr la consulta corre esta
sentencia

set enable_seqscan=off --esto va a forza a utilizar
los indices, y observa que es lo que sucede con el
rendimiento de la consulta.

Saludos.

> Pero me genera error de sintaxis en el "::"
>
> Atentamente,
>
> RAUL DUQUE
> Bogotá, Colombia
>
> ----- Original Message -----
> From: "sergio carrasco" <a882sacl(at)yahoo(dot)com(dot)ar>
> To: <pgsql-es-ayuda(at)postgresql(dot)org>
> Sent: Tuesday, September 11, 2007 12:54 PM
> Subject: Re: [pgsql-es-ayuda] No usa índice
>
>
> >
> > ¡ Hola Raúl Andrés ...
> >
> >> Raul Andres Duque escribió:
> >> > Cordial Saludo Compañeros:
> >> >
> >> > Básicamente tengo un query donde filtro por un
> >> rango de fechas (usando
> >> > BETWEEN), cómo la tabla va a crecer mucho, he
> >> creado un índice por el
> >> > campo "fecha_movimiento" pero mi query no lo
> usa
> >> (hace un seq scan),
> >> > por qué será?
> >
> > Independiente de si se justifica o no el uso de un
> > índice, a mí me pasó el siguiente caso:
> >
> > - Tenía un campo de tipo "timestamp", donde
> almacenaba
> > fecha y hora. Resulta que al indexarlo para tratar
> de
> > optimizar mis tiempos de consulta... NO lo usaba
> > (similar a tu caso), si no que hacía una búsqueda
> > secuencial.
> >
> > Se me ocurrió modificar la clave del índice de
> > "CampoFecha" a "CampoFecha::date" y ... al ver el
> > analize me empezó a utilizar una búsqueda "bitmap
> > index".
> >
> > No sé si sea tu caso, pero te lo comento por si te
> > sirve. Ahhh... esto sobre PostgreSql 8.1.9.
> >
> > Sergio
> >
> >
> >
> > Los referentes más importantes en compra/
> venta de autos se juntaron:
> > Demotores y Yahoo!
> > Ahora comprar o vender tu auto es más fácil. Vistá
> ar.autos.yahoo.com/
> > --
> > ---------------------------(fin del
> mensaje)---------------------------
> > TIP 4: No hagas 'kill -9' a postmaster
>
> --
> ---------------------------(fin del
> mensaje)---------------------------
> TIP 4: No hagas 'kill -9' a postmaster
>


____________________________________________________________________________________
Sé un Mejor Amante del Cine
¿Quieres saber cómo? ¡Deja que otras personas te ayuden!
http://advision.webevents.yahoo.com/reto/entretenimiento.html

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Felipe Amezquita 2007-09-12 02:15:27 Extensiones postgis
Previous Message Henry 2007-09-12 02:03:01 RE: Re: [pgsql-es-ayuda] No usa índice