From: | David Rowley <dgrowleyml(at)gmail(dot)com> |
---|---|
To: | Robert Haas <robertmhaas(at)gmail(dot)com> |
Cc: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, Jian Guo <gjian(at)vmware(dot)com>, Zhenghua Lyu <zlyu(at)vmware(dot)com>, PostgreSQL Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org> |
Subject: | Re: On disable_cost |
Date: | 2024-03-12 20:55:22 |
Message-ID: | CAApHDvoqYmnWJJJYnhqUias61d4A+-1_4r6NHY_5MisxFzebcA@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On Wed, 13 Mar 2024 at 08:55, Robert Haas <robertmhaas(at)gmail(dot)com> wrote:
> But in the absence of that, we need some way to privilege the
> non-disabled paths over the disabled ones -- and I'd prefer to have
> something more principled than disable_cost, if we can work out the
> details.
The primary place I see issues with disabled_cost is caused by
STD_FUZZ_FACTOR. When you add 1.0e10 to a couple of modestly costly
paths, it makes them appear fuzzily the same in cases where one could
be significantly cheaper than the other. If we were to bump up the
disable_cost it would make this problem worse.
I think we do still need some way to pick the cheapest disabled path
when there are no other options.
One way would be to set fuzz_factor to 1.0 when either of the paths
costs in compare_path_costs_fuzzily() is >= disable_cost.
clamp_row_est() does cap row estimates at MAXIMUM_ROWCOUNT (1e100), so
I think there is some value of disable_cost that could almost
certainly ensure we don't reach it because the path is truly expensive
rather than disabled.
So maybe the fix could be to set disable_cost to something like
1.0e110 and adjust compare_path_costs_fuzzily to not apply the
fuzz_factor for paths >= disable_cost. However, I wonder if that
risks the costs going infinite after a couple of cartesian joins.
David
From | Date | Subject | |
---|---|---|---|
Next Message | Nathan Bossart | 2024-03-12 21:05:41 | Re: un-revert the MAINTAIN privilege and the pg_maintain predefined role |
Previous Message | Alvaro Herrera | 2024-03-12 20:47:35 | Re: remaining sql/json patches |