From: | Jason Earl <jason(dot)earl(at)simplot(dot)com> |
---|---|
To: | Jean-Christophe Boggio <cat(at)thefreecat(dot)org> |
Cc: | pgsql-sql(at)postgresql(dot)org |
Subject: | Re: Optimization with dates |
Date: | 2001-11-14 00:44:00 |
Message-ID: | 87g07iji5r.fsf@npa01zz001.simplot.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-sql |
I have a similar table (~16M rows) with an indexed timestamp, and have
had similar problems. I have found that even when I am using a
constant timestamp like in this query.
SELECT * FROM caseweights1 WHERE dt > '2001-11-01';
I start getting sequential scans with 7.1.3 long before they are
faster than index based queries. I believe that there is a constant
that can be fiddled to modify this behavior, and it seems like I have
also read that this constant has been modified in the new 7.2 release.
However, for queries that you *know* will be faster using the index
you can always issue:
set enable_seqscan to off;
before running your query. This will force PostgreSQL to use the
index even in queries like this one:
SELECT * FROM caseweights1 WHERE dt > (SELECT now() - '30 days'::interval);
Jason
Jean-Christophe Boggio <cat(at)thefreecat(dot)org> writes:
> Hello,
>
> I really have a problem dealing with dates :
>
> I have a big table (~10M rows) like :
>
> create table gains (
> dategain timestamp,
> otherfields
> );
>
> There's an index on dategain and I want to use it to get the last
> 30 days records :
>
> explain select count(*) from gains where dategain>=now()-30;
>
> Aggregate (cost=256546.78..256546.78 rows=1 width=0)
> -> Seq Scan on gains (cost=0.00..250627.68 rows=2367640 width=0)
>
> whereas :
>
> explain select count(*) from gains where dategain>='now';
>
> Aggregate (cost=27338.47..27338.47 rows=1 width=0)
> -> Index Scan using ix_gains_dategain on gains (cost=0.00..27320.71 rows=7103 width=0)
>
> I have tried :
> where dategain>=(select now()-30);
> where dategain+30>='now'
> where date(dategain)>=date('now')-30
> and many other, syntactically absurd :-)
>
> Anyone can help me use this index ?
>
> TIA,
>
> --
> Jean-Christophe Boggio
> cat(at)thefreecat(dot)org -o)
> Independant Consultant and Developer /\\
> Delphi, Linux, Perl, PostgreSQL, Debian _\_V
>
>
> ---------------------------(end of broadcast)---------------------------
> TIP 4: Don't 'kill -9' the postmaster
From | Date | Subject | |
---|---|---|---|
Next Message | Jason Earl | 2001-11-14 00:49:45 | Re: Optimization with dates |
Previous Message | Josh Berkus | 2001-11-14 00:19:13 | Re: Optimization with dates |