Re: [GENERAL] Indice en Date

From: Arturo <arturomunive(at)gmail(dot)com>
To: Postgresql <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: [GENERAL] Indice en Date
Date: 2007-05-01 17:39:33
Message-ID: 46377B55.3040408@gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda pgsql-general

Jaime Casanova escribió:
> te estoy redirigiendo a una lista en español, la lista a la que
> enviaste este mensaje es en ingles y debes escribir en ingles al
> mandar mensajes ahi...
>
> On 4/27/07, Arturo Munive <arturomunive(at)gmail(dot)com> wrote:
>>
>> tengo un indice sobre una columna date.
>>
>> cuando hago una consulta ...
>> Select
>> id
>> from
>> ventas
>> WHERE
>> fecha = date('12-JAN-2007')
>>
>> el planificador usa el indice
>>
>> pero cuando la restriccion es WHERE fecha < date('12-JAN-2007')
>>
>> se efectua un barrido secuencial.
>>
>> ni e indice ni la tabla ni la consulta son nada complejos
>>
>> que me olvido o que debo hacer para que se utilize el indice cuando
>> uso el
>> operador menor
>>
>
> los indices no son siempre la mejor alternativa... puedes ejecutar la
> sentencia con un EXPLAIN ANALYZE al inicio? y mostrarnos el resultado?
>
> EXPLAIN ANALYZE
> Select id from ventas
> WHERE fecha = date('12-JAN-2007')
>
> tambien seria bueno saber cuantos registros tiene la tabla, y cuantos
> regresa ese select.
>
> lo mas probable es que el planificador este esperando que el select
> con < regrese casi todo el contenido de la tabla y por eso prefiere
> leerla toda. tambien seria interesante saber que version de postgres
> estas usando
>

Hola gracias por redirigirme paropiadamente, la verda nunca habia
posteado en listas de este sitio
por eso me confindí :)

Buno el problema que tenía lo resolví, pero no se si es la manera correcta.

SELECT
id
FROM
ventas
WHERE
fecha < date('12-JAN-2007')

No usa el índice, pero cuando la consulta es

SELECT
id
FROM
ventas
WHERE
fecha::date < date('12-JAN-2007')

usa el índice como esperaba....

lo raro de todo esto es que la columna fecha está definida del tipo date

Ahora no pongo el EXPLAIN ANALYZE debido a que estoy en otra computadora
donde no tengo acceso a la base de datos en la que estoy trabajando
(es el dia del trabajador aqui en Arequipa-Perú)

Bueno de todas formas gracias por la ayuda....

en todo caso es normal este cast a date dado que la columna de por si ya
es date

inlcuso si hago

SELECT
id
FROM
ventas
WHERE
fecha::date < '12-JAN-2007'::date

tambien funciona, con el índice , solo no funciona cuando no hago el
cast sobre la columna fecha

Saludos

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Sandro Martínez 2007-05-01 18:20:40 sobre setArray en JDBC
Previous Message Leonardo Garcia 2007-05-01 01:38:59 Re: Disparar periodicamente una funcion

Browse pgsql-general by date

  From Date Subject
Next Message Rich Shepard 2007-05-01 17:41:44 CHECK() Constraint on Column Using Lookup Table
Previous Message Brad Nicholson 2007-05-01 17:20:37 Dynamically Allocated System Resources