Skip to content

Commit 27146e7

Browse files
committed
Doc: mention executor memory usage for enable_partitionwise* GUCs
Prior to this commit, the docs for enable_partitionwise_aggregate and enable_partitionwise_join mentioned the additional overheads enabling these causes for the query planner, but they mentioned nothing about the possible surge in work_mem-consuming executor nodes that could end up in the final plan. Dimitrios reported the OOM killer intervened on his query as a result of using enable_partitionwise_aggregate=on. Here we adjust the docs to mention the possible increase in the number of work_mem-consuming executor nodes that can appear in the final plan as a result of enabling these GUCs. Reported-by: Dimitrios Apostolou Reviewed-by: Ashutosh Bapat Discussion: https://postgr.es/m/3603c380-d094-136e-e333-610914fb3e80%40gmx.net Discussion: https://postgr.es/m/CAApHDvoZ0_yqwPFEpb6h261L76BUpmh5GxBQq0LeRzQ5Jh3zzg@mail.gmail.com Backpatch-through: 12, oldest supported version
1 parent 9744fe2 commit 27146e7

File tree

1 file changed

+14
-6
lines changed

1 file changed

+14
-6
lines changed

doc/src/sgml/config.sgml

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5262,9 +5262,13 @@ ANY <replaceable class="parameter">num_sync</replaceable> ( <replaceable class="
52625262
joining the matching partitions. Partitionwise join currently applies
52635263
only when the join conditions include all the partition keys, which
52645264
must be of the same data type and have one-to-one matching sets of
5265-
child partitions. Because partitionwise join planning can use
5266-
significantly more CPU time and memory during planning, the default is
5267-
<literal>off</literal>.
5265+
child partitions. With this setting enabled, the number of nodes
5266+
whose memory usage is restricted by <varname>work_mem</varname>
5267+
appearing in the final plan can increase linearly according to the
5268+
number of partitions being scanned. This can result in a large
5269+
increase in overall memory consumption during the execution of the
5270+
query. Query planning also becomes significantly more expensive in
5271+
terms of memory and CPU. The default value is <literal>off</literal>.
52685272
</para>
52695273
</listitem>
52705274
</varlistentry>
@@ -5282,9 +5286,13 @@ ANY <replaceable class="parameter">num_sync</replaceable> ( <replaceable class="
52825286
tables to be performed separately for each partition. If the
52835287
<literal>GROUP BY</literal> clause does not include the partition
52845288
keys, only partial aggregation can be performed on a per-partition
5285-
basis, and finalization must be performed later. Because
5286-
partitionwise grouping or aggregation can use significantly more CPU
5287-
time and memory during planning, the default is
5289+
basis, and finalization must be performed later. With this setting
5290+
enabled, the number of nodes whose memory usage is restricted by
5291+
<varname>work_mem</varname> appearing in the final plan can increase
5292+
linearly according to the number of partitions being scanned. This
5293+
can result in a large increase in overall memory consumption during
5294+
the execution of the query. Query planning also becomes significantly
5295+
more expensive in terms of memory and CPU. The default value is
52885296
<literal>off</literal>.
52895297
</para>
52905298
</listitem>

0 commit comments

Comments
 (0)