diff options
author | David Rowley | 2024-10-29 10:28:12 +0000 |
---|---|---|
committer | David Rowley | 2024-10-29 10:28:12 +0000 |
commit | 84b8fccbe5c21cc2a05f8cf91903cadc6ebfe680 (patch) | |
tree | b5b1f7b11d547a5826024ca1817c94943e8952a2 /doc/src | |
parent | 014720c6d9fb1285846f0b7cc1c80bdbe887a743 (diff) |
Doc: add detail about EXPLAIN's "Disabled" property
c01743aa4 and later 161320b4b adjusted the EXPLAIN output to show which
plan nodes were chosen despite being disabled by the various enable*
GUCs. Prior to e22253467, the disabledness of a node was only evident by
a large startup cost penalty. Since we now explicitly tag disabled nodes
with a boolean property in EXPLAIN, let's add some documentation to
provide some details about why and when disabled nodes can appear in the
plan.
Author: Laurenz Albe, David Rowley
Discussion: https://postgr.es/m/[email protected]
Diffstat (limited to 'doc/src')
-rw-r--r-- | doc/src/sgml/perform.sgml | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/doc/src/sgml/perform.sgml b/doc/src/sgml/perform.sgml index ff689b65245..cd12b9ce48b 100644 --- a/doc/src/sgml/perform.sgml +++ b/doc/src/sgml/perform.sgml @@ -579,6 +579,31 @@ WHERE t1.unique1 < 100 AND t1.unique2 = t2.unique2; </para> <para> + When using the enable/disable flags to disable plan node types, many of + the flags only discourage the use of the corresponding plan node and don't + outright disallow the planner's ability to use the plan node type. This + is by design so that the planner still maintains the ability to form a + plan for a given query. When the resulting plan contains a disabled node, + the <command>EXPLAIN</command> output will indicate this fact. + +<screen> +SET enable_seqscan = off; +EXPLAIN SELECT * FROM unit; + + QUERY PLAN +--------------------------------------------------------- + Seq Scan on unit (cost=0.00..21.30 rows=1130 width=44) + Disabled: true +</screen> + </para> + + <para> + Because the <literal>unit</literal> table has no indexes, there is no + other means to read the table data, so the sequential scan is the only + option available to the query planner. + </para> + + <para> <indexterm> <primary>subplan</primary> </indexterm> |