max_parallel_workers_per_gather
No restart — settable per sessiontuned by pgconfiguratorcount (workers per Gather)
Maximum parallel workers a single query operation may request.
What pgconfigurator would set
32 GB · 8 vCPU · NVMe · OLTP
Computing…
Tune for your exact server → /tunecomputed in your browser · nothing uploaded
What it does
max_parallel_workers_per_gather caps how many parallel workers one Gather node can ask for, i.e. how parallel a single query can get. It's bounded by the cluster-wide pool (max_parallel_workers) and the hard ceiling (max_worker_processes).
How to tune it
0 disables intra-query parallelism. For analytical workloads with big scans/joins, 2–8 is common. Don't set it so high that concurrent queries exhaust max_parallel_workers — when they do, plans request workers that never launch (visible as 'Workers Launched' < 'Workers Planned').
What the analyzer flags
- Parallel under-use — fewer workers launched than planned
Related plan nodes
FAQ
- Why do my plans show fewer workers launched than planned?
- The global pool (max_parallel_workers / max_worker_processes) was exhausted — often by other concurrent parallel queries. Either raise the pool or lower per-gather requests so the numbers match what the system can actually launch.