↑↓ 选择 ↵ 打开 ⌫ 改范围 完整检索页

pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。

百科 / 配置参数 / 资源消耗

CONFIGURATION PARAMETER资源消耗 / 工作进程

parallel_leader_participation

控制 Gather 或 Gather Merge 的 leader 是否也执行子计划。

Controls whether Gather and Gather Merge also run subplans.

布尔 会话 引入 11 现存至 20 devel 0 次默认值变更

类型
布尔bool
上下文
会话任何用户都可在会话内用 SET 修改
默认值
on
引入版本
11
状态
现存

PostgreSQL 18 手册 官方文档 引入提交 e5253fdc4f

版本轨迹

相对 PostgreSQL 17 仅简述或分类有更新。

默认值变迁

on 11 – 20

已记录的默认值在 PostgreSQL 11–20 之间未变。带单位的取值换算成了可读形式,原始的 boot_val 与单位写在悬浮提示里。

手册说明

PostgreSQL 18 手册 · 19.4 资源消耗 本站手册 官方原文

本版译文与 PostgreSQL 11 完全一致,下面就是同一段文字。

允许领导者进程执行 Gather 和 Gather Merge 节点下的查询计划,而不是等待工作进程。默认值为 on。将此值设置为 off,可以降低工作进程因领导者读取元组不够快而被阻塞的可能性,但在产生第一批元组之前,领导者进程必须等待工作进程启动。领导者对性能的帮助或妨碍程度取决于计划类型、工作进程数量和查询持续时间。

机制详解

parallel_leader_participation 控制 Gather 或 Gather Merge 上方的进程在协调 worker 时是否也执行并行子计划;关闭时 leader 更专注于读取 worker 输出。

当结果生成昂贵时,leader 参与可增加有效 CPU;但 leader 忙于执行子计划时,可能更慢地消费大量 worker 结果流。

它是符合条件并行计划的规划/执行策略,不是额外 worker 名额。效果取决于元组量、Gather 类型、worker 可用性与瓶颈位置。其 user 上下文允许按会话或事务局部修改,之后执行或重新规划的工作会读取新值。

调优建议

按典型负载给出的取值思路,不是放之四海皆准的配方:实际取值要看数据量、并发度与硬件。

  • OLTP在线事务处理

    除非代表性 Gather 计划表明 leader 忙于执行子计划,无法及时消费 worker 元组,否则保留默认 on。只在会话范围测试 off,并比较首行延迟、总延迟与 worker 阻塞。

  • OLAP分析与批处理

    对 CPU 密集子计划,leader 参与通常能增加有效执行能力;对超大结果流,关闭后可让 leader 更早专注于排空 worker。应在相同计划与并发度下比较两个布尔状态。

  • 小规格低配实例与开发机

    该布尔值不会增加或减少 worker 名额。除非实测存在结果消费瓶颈,否则保持 on;worker 数应由 max_parallel_workers_per_gather 与共享池另行规划。

常见问题

  • 把该布尔值误当成并行度或 worker 数量设置。
  • 使用“更大取值”描述只有 on/off 两种状态的参数。
  • 关闭参与却没有测量等待 worker 产出首批元组所增加的时间。
  • 开启参与却没有检查 leader 是否因此过慢地消费大型 worker 结果流。

演化历史

相邻两个大版本之间的差异,新的在前。版本号链到该版的快照。

  1. PostgreSQL 20 ← 19 沿用 19

    事实沿用 19

  2. PostgreSQL 18 ← 17 仅描述更新

    分类 Resource Usage / Asynchronous Behavior Resource Usage / Worker Processes

  3. PostgreSQL 14 ← 13 仅描述更新

    补充说明 Should gather nodes also run subplans, or just gather tuples? Should gather nodes also run subplans or just gather tuples?

  4. PostgreSQL 11 ← 10 新增此参数

    PostgreSQL 11 起可用

逐版本快照

每个收录版本里的 7 项事实,与上一个存在的版本不同的格子带底色。版本号链到该版。

版本 默认值单位上下文类型最小值最大值枚举值
11 on — 会话 布尔 — — —
12 on — 会话 布尔 — — —
13 on — 会话 布尔 — — —
14 on — 会话 布尔 — — —
15 on — 会话 布尔 — — —
16 on — 会话 布尔 — — —
17 on — 会话 布尔 — — —
18 on — 会话 布尔 — — —
19 on — 会话 布尔 — — —
20 沿用 on — 会话 布尔 — — —

参考资料

同类参数

参数 类型 上下文 默认值 版本变动 最近变更
Resource Usage 资源消耗 5 个 ↗
工作进程 5
max_parallel_maintenance_workers 整数 会话 2 —
设置单次维护操作最多使用的并行工作进程数。 现存
max_parallel_workers 整数 会话 8 —
设置集群内可同时活动的并行工作进程总数。 现存
max_parallel_workers_per_gather 整数 会话 2 101 次
设置单个 Gather 节点最多请求的并行工作进程数。 现存
max_worker_processes 整数 重启生效 8 9.61 次
设置并发后台工作进程的总上限。 现存
parallel_leader_participation 布尔 会话 on —
控制 Gather 或 Gather Merge 的 leader 是否也执行子计划。 现存