Re: On disable_cost
Robert Haas <robertmhaas@gmail.com>
From: Robert Haas <robertmhaas@gmail.com>
To: Peter Geoghegan <pg@bowt.ie>
Cc: David Rowley <dgrowleyml@gmail.com>, Tom Lane <tgl@sss.pgh.pa.us>, PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2024-06-12T15:35:48Z
Lists: pgsql-hackers
Attachments
- v2-0001-Remove-grotty-use-of-disable_cost-for-TID-scan-pl.patch (application/octet-stream) patch v2-0001
- v2-0002-Rationalize-behavior-of-enable_indexscan-and-enab.patch (application/octet-stream) patch v2-0002
- v2-0003-Treat-the-of-disabled-nodes-in-a-path-as-a-separa.patch (application/octet-stream) patch v2-0003
- v2-0004-Show-the-of-disabled-nodes-in-EXPLAIN-ANALYZE-out.patch (application/octet-stream) patch v2-0004
On Tue, May 7, 2024 at 4:19 PM Robert Haas <robertmhaas@gmail.com> wrote: > Here are some patches for discussion. Well, that didn't generate much discussion, but here I am trying again. Here I've got patches 0001 and 0002 from my previous posting; I've dropped 0003 and 0004 from the previous set for now so as not to distract from the main event, but they may still be a good idea. Instead I've got an 0003 and an 0004 that implement the "count of disabled nodes" approach that we have discussed previously. This seems to work fine, unlike the approaches I tried earlier. I think this is the right direction to go, but I'd like to know what concerns people might have. This doesn't completely remove disable_cost, because hash joins still add it to the cost when it's impossible to fit the MCV value into work_mem. I'm not sure what to do with that. Continuing to use disable_cost in that one scenario seems OK to me. We could alternatively make that scenario bump disabled_nodes, but I don't really want to confuse the planner not wanting to do something with the user telling the planner not to do something, so I don't think that's a good idea. Or we could rejigger things so that in that case we don't generate the plan at all. I'm not sure why we don't do that already, actually. -- Robert Haas EDB: http://www.enterprisedb.com
Commits
-
Doc: add detail about EXPLAIN's "Disabled" property
- 84b8fccbe5c2 18.0 landed
-
Adjust EXPLAIN's output for disabled nodes
- 161320b4b960 18.0 landed
-
Fix order of parameters in a cost_sort call
- 87b6c3c0b703 18.0 landed
-
Show number of disabled nodes in EXPLAIN ANALYZE output.
- c01743aa4866 18.0 landed
-
Treat number of disabled nodes in a path as a separate cost metric.
- e22253467942 18.0 landed
-
Remove grotty use of disable_cost for TID scan plans.
- e4326fbc60c4 18.0 landed