Re: [Pgsql-ayuda] Ayuda con indice de campo TIMESTAMP

From: Alvaro Herrera <alvherre(at)dcc(dot)uchile(dot)cl>
To: mondino(at)solsoft(dot)com(dot)ar
Cc: Pgsql-ayuda(at)tlali(dot)iztacala(dot)unam(dot)mx
Subject: Re: [Pgsql-ayuda] Ayuda con indice de campo TIMESTAMP
Date: 2003-11-10 17:14:32
Message-ID: 20031110171432.GD6483@dcc.uchile.cl
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

On Mon, Nov 10, 2003 at 11:54:53AM +0000, mondino(at)solsoft(dot)com(dot)ar wrote:

> explain select * from t_vtdeta where vh_feho>='17-10-2003 00:00:00'
> or vh_feho<='17-10-2003 23:59:59' order by vh_feho;
>
> NOTICE: QUERY PLAN:
>
> Index Scan using tvtdeta_vhfeho on t_vtdeta (cost=0.00..91877.39
> rows=186739 width=220)

Me sorprende esto, porque dada la condición que le das debería retornar
todas las tuplas de la tabla (la condición siempre es cierta). Qué pasa
si usas AND en vez de OR?

> explain select * from t_vtdeta where cast(vh_feho as date)='17-10-2003'
> order by vh_feho;
> NOTICE: QUERY PLAN:
>
> Sort (cost=10128.56..10128.56 rows=2047 width=220)
> -> Seq Scan on t_vtdeta (cost=0.00..10016.00 rows=2047 width=220)

El planner no es capaz de usar el índice para resolver una consulta con
un tipo de dato distinto.

A todo esto, qué dice EXPLAIN ANALYZE en lugar de EXPLAIN?

--
Alvaro Herrera (<alvherre[a]dcc.uchile.cl>)
"Aprende a avergonzarte más ante ti que ante los demás" (Demócrito)

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Roberto Andrade Fonseca 2003-11-10 17:19:43 [Pgsql-ayuda] Open Source 2003
Previous Message César Villanueva 2003-11-10 16:11:33 Re: [Pgsql-ayuda] Coordenadas