选择 打开 改范围 完整检索页

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 起没有变过。带单位的取值换算成了可读形式,原始的 boot_val 与单位写在悬浮提示里。

手册说明

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

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

允许 leader 进程在GatherGather Merge节点下参与执行查询计划,而不是仅仅等待 worker 进程。 默认值是on。 将其设置为off可以降低 worker 因 leader 读取元组速度不够快而被阻塞的可能性, 但在生成第一条元组之前,leader 进程将需要等待 worker 进程启动。 leader 对性能的帮助或拖累程度取决于计划类型、worker 数量以及查询持续时间。

机制详解

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 是否也执行子计划。 现存