Re: Optimization with dates

Поиск
Список
Период
Сортировка
От Stephan Szabo
Тема Re: Optimization with dates
Дата
Msg-id 20011113161522.F89792-100000@megazone23.bigpanda.com
обсуждение исходный текст
Ответ на Optimization with dates  (Jean-Christophe Boggio <cat@thefreecat.org>)
Список pgsql-sql
On Wed, 14 Nov 2001, Jean-Christophe Boggio wrote:

> 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 ?

Is 2367640 a reasonable estimate for the number of
rows that match the condition?  Have you run vacuum
analyze?
If the estimate is right, you'll probably find that
the sequence scan is actually faster than an index
scan since about 1/4 of the table is being selected.




В списке pgsql-sql по дате отправления:

Предыдущее
От: "Josh Berkus"
Дата:
Сообщение: Re: Optimization with dates
Следующее
От: Jason Earl
Дата:
Сообщение: Re: Optimization with dates