From: | Simon Riggs <simon(at)2ndquadrant(dot)com> |
---|---|
To: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
Cc: | Kevin Grittner <Kevin(dot)Grittner(at)wicourts(dot)gov>, pgsql-performance(at)postgresql(dot)org, Andreas Kretschmer <akretschmer(at)spamfence(dot)net> |
Subject: | Re: BETWEEN optimizer problems with single-value |
Date: | 2006-03-16 00:24:38 |
Message-ID: | 1142468678.3859.221.camel@localhost.localdomain |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers pgsql-performance |
On Thu, 2006-03-16 at 00:07 +0000, Simon Riggs wrote:
> On Wed, 2006-03-15 at 14:17 -0500, Tom Lane wrote:
>
> > It looks to me like this is a matter of bad cost estimation, ie, it's
> > thinking the other index is cheaper to use. Why that is is not clear.
> > Can we see the pg_stats rows for ctofcNo and calDate?
>
> ISTM that when the BETWEEN constants match we end up in this part of
> clauselist_selectivity()...
(and now for the whole email...)
/*
* It's just roundoff error; use a small positive
* value
*/
s2 = 1.0e-10;
so that the planner underestimates the cost of using "Cal_CalDate" so
that it ends up the same as "Cal_CtofcNo", and then we pick
"Cal_CalDate" because it was created first.
Using 1.0e-10 isn't very useful... the selectivity for a range should
never be less than the selectivity for an equality, so we should simply
put in a test against one of the pseudo constants and use that as the
minimal value. That should lead to raising the apparent cost of
Cal_CalDate so that Cal_CtofcNo can take precedence.
Best Regards, Simon Riggs
From | Date | Subject | |
---|---|---|---|
Next Message | Christopher Kings-Lynne | 2006-03-16 01:27:19 | Static build of psql with readline support |
Previous Message | Simon Riggs | 2006-03-16 00:07:06 | Re: BETWEEN optimizer problems with single-value |
From | Date | Subject | |
---|---|---|---|
Next Message | Jan de Visser | 2006-03-16 00:42:00 | Re: Slow SELECTS after large update cycle |
Previous Message | Simon Riggs | 2006-03-16 00:07:06 | Re: BETWEEN optimizer problems with single-value |