Re: Index usage on date feild , differences in '>' and '>=' and between

From: "Rajesh Kumar Mallah(dot)" <mallah(at)trade-india(dot)com>
To: Stephan Szabo <sszabo(at)megazone23(dot)bigpanda(dot)com>
Cc: <pgsql-sql(at)postgresql(dot)org>
Subject: Re: Index usage on date feild , differences in '>' and '>=' and between
Date: 2002-09-19 07:06:11
Message-ID: 200209191236.11671.mallah@trade-india.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-sql

Thanks very much for the response.
set enable_seqscan=off; Definitely helps.
and for wide date ranges it usees indexes.

But with default value of enable_sequence changing date range seems to have effect.
can you explain me a bit more or point me to right documents for understanding
the languae of "EXPLAIN".

====================================================================
EXPLAIN
tradein_clients=> explain select list_id from eyp_rfi a where generated between '2002-09-11' and '2002-09-19' ;
NOTICE: QUERY PLAN:

Seq Scan on eyp_rfi a (cost=0.00..17923.81 rows=12924 width=4)

EXPLAIN
tradein_clients=> explain select list_id from eyp_rfi a where generated between '2002-09-12' and '2002-09-19' ;
NOTICE: QUERY PLAN:

Index Scan using eyp_rfi_date on eyp_rfi a (cost=0.00..17369.05 rows=12220 width=4)

EXPLAIN
tradein_clients=>
======================================================================

the distribution of values are as follows:
> select generated ,count(generated) from eyp_rfi a where generated between '2002-09-10' and '2002-09-19' group by generated;

generated | count
------------+-------
2002-09-10 | 442
2002-09-11 | 1060
2002-09-12 | 641
2002-09-13 | 607
2002-09-14 | 1320
2002-09-15 | 521
2002-09-16 | 1474
2002-09-17 | 940
2002-09-18 | 1005
2002-09-19 | 178
(10 rows)

Last Question , Shud i do "enable_seqscan=off" in Application Level? I use Perl-DBI

Thanks and Regards
Rajesh Mallah.

Tsday 19 September 2002 12:07, Stephan Szabo wrote:
> On Thu, 19 Sep 2002, Rajesh Kumar Mallah. wrote:
> > I am trying to improve a query to use existing indexes but facing
> > diffculty.
> >
> >
> > Looks like 'between' amd '>=' are not using indexes althoug > and < does.
> > all my application code uses between and i am sure it use to work fine
> > at one point of time.
> >
> >
> > regds
> > mallah.
> >
> > SQL TRANSCRIPT:
> > =========================================================================
> >=============
> >
> > tradein_clients=> explain select list_id from eyp_rfi a where
> > generated > '2002-08-13' and generated < '2002-09-19' ; NOTICE:
> > QUERY PLAN:
> >
> > Index Scan using eyp_rfi_date on eyp_rfi a (cost=0.00..15796.97
> > rows=4150 width=4)
> >
> > EXPLAIN
> > tradein_clients=> explain select list_id from eyp_rfi a where
> > generated >= '2002-08-13' and generated < '2002-09-19' ; NOTICE:
> > QUERY PLAN:
> >
> > Seq Scan on eyp_rfi a (cost=0.00..17923.81 rows=5061 width=4)
>
> Given how close the two results are (and the fact that they differ by 900
> rows), have you tried using set enable_seqscan=off and seeing what
> explain gives you for the second query? My guess is that it'll have
> an estimated cost greater than the 17923.81 it's estimating from the
> sequence scan.

--
Rajesh Kumar Mallah,
Project Manager (Development)
Infocom Network Limited, New Delhi
phone: +91(11)6152172 (221) (L) ,9811255597 (M)

Visit http://www.trade-india.com ,
India's Leading B2B eMarketplace.

In response to

Responses

Browse pgsql-sql by date

  From Date Subject
Next Message dima 2002-09-19 11:08:21 Re: Stripping white-space in SELECT statments
Previous Message Rajesh Kumar Mallah. 2002-09-19 06:38:46 Index usage on date feild , differences in '>' and '>=' and between