Skip to content

Commit 51895d0

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 924a08b commit 51895d0

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
@@ -5143,9 +5143,13 @@ ANY <replaceable class="parameter">num_sync</replaceable> ( <replaceable class="
51435143
joining the matching partitions. Partitionwise join currently applies
51445144
only when the join conditions include all the partition keys, which
51455145
must be of the same data type and have one-to-one matching sets of
5146-
child partitions. Because partitionwise join planning can use
5147-
significantly more CPU time and memory during planning, the default is
5148-
<literal>off</literal>.
5146+
child partitions. With this setting enabled, the number of nodes
5147+
whose memory usage is restricted by <varname>work_mem</varname>
5148+
appearing in the final plan can increase linearly according to the
5149+
number of partitions being scanned. This can result in a large
5150+
increase in overall memory consumption during the execution of the
5151+
query. Query planning also becomes significantly more expensive in
5152+
terms of memory and CPU. The default value is <literal>off</literal>.
51495153
</para>
51505154
</listitem>
51515155
</varlistentry>
@@ -5163,9 +5167,13 @@ ANY <replaceable class="parameter">num_sync</replaceable> ( <replaceable class="
51635167
tables to be performed separately for each partition. If the
51645168
<literal>GROUP BY</literal> clause does not include the partition
51655169
keys, only partial aggregation can be performed on a per-partition
5166-
basis, and finalization must be performed later. Because
5167-
partitionwise grouping or aggregation can use significantly more CPU
5168-
time and memory during planning, the default is
5170+
basis, and finalization must be performed later. With this setting
5171+
enabled, the number of nodes whose memory usage is restricted by
5172+
<varname>work_mem</varname> appearing in the final plan can increase
5173+
linearly according to the number of partitions being scanned. This
5174+
can result in a large increase in overall memory consumption during
5175+
the execution of the query. Query planning also becomes significantly
5176+
more expensive in terms of memory and CPU. The default value is
51695177
<literal>off</literal>.
51705178
</para>
51715179
</listitem>

0 commit comments

Comments
 (0)