From: Vlad Arkhipov <arhipov@dc.baikal.ru>
To: pgsql-performance@postgresql.org
Subject: Statistics issue
Date: Fri, 30 May 2008 20:02:41 +0900
Message-ID: <483FDED1.1070503@dc.baikal.ru> (raw)
I have a big table that is used in many queries. Most used index is
created on date field. Number of records in this table when date field
is saturday is about 5 times smaller than other days, on sunday this
number is always 0. Statistics target is 1000. Many queries have
problems when condition on this table looks like "d between '2007-05-12'
and '2007-05-12'" (saturday).
EXPLAIN ANALYZE
SELECT *
FROM i
WHERE d BETWEEN '2007-05-12' AND '2007-05-12'
Index Scan using i_d on i (cost=0.00..2.39 rows=1 width=402) (actual
time=0.053..4.284 rows=1721 loops=1)
Index Cond: ((d >= '2007-05-12'::date) AND (d <= '2007-05-12'::date))
Total runtime: 6.645 ms
EXPLAIN ANALYZE
SELECT *
FROM i
WHERE d = '2007-05-12'
Index Scan using i_d on i (cost=0.00..38.97 rows=1572 width=402)
(actual time=0.044..4.250 rows=1721 loops=1)
Index Cond: (d = '2007-05-12'::date)
Total runtime: 6.619 ms
Is there a way to solve this problem?
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Reply to all the recipients using the --to and --cc options:
reply via email
To: pgsql-performance@postgresql.org
Cc: arhipov@dc.baikal.ru
Subject: Re: Statistics issue
In-Reply-To: <483FDED1.1070503@dc.baikal.ru>
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox