Тип: | integer |
По умолчанию: | 2 |
Минимальный: | 0 |
Максимальный: | 1024 |
Контекст: | user |
Перезапуск: | false |
От: | 9.6 |
Задаёт максимальное число рабочих процессов, которые могут запускаться одним узлом Gather
или Gather Merge
. Параллельные рабочие процессы берутся из пула процессов, контролируемого параметром max_worker_processes, в количестве, ограничиваемом значением max_parallel_workers. Учтите, что запрошенное количество рабочих процессов может быть недоступно во время выполнения. В этом случае план будет выполняться с меньшим числом процессов, что может быть неэффективно. Значение по умолчанию — 2. Значение 0 отключает параллельное выполнение запросов.
Учтите, что параллельные запросы могут потреблять значительно больше ресурсов, чем не параллельные, так как каждый рабочий процесс является отдельным процессом и оказывает на систему примерно такое же влияние, как дополнительный пользовательский сеанс. Это следует учитывать, выбирая значение этого параметра, а также настраивая другие параметры, управляющие использованием ресурсов, например work_mem. Ограничения ресурсов, такие как work_mem, применяются к каждому рабочему процессу отдельно, что означает, что общая нагрузка для всех процессов может оказаться гораздо больше, чем при обычном использовании одного процесса. Например, параллельный запрос, задействующий 4 рабочих процесса, может использовать в 5 раз больше времени процессора, объёма памяти, ввода/вывода и т. д., по сравнению с запросом, не задействующим рабочие процессы вовсе.
За дополнительными сведениями о параллельных запросах обратитесь к 3.
Рекомендации [EN]
На StackOverflow
- Postgres 9.6: Parallel query does not take max_parallel_workers_per_gather setting
- why max_parallel_workers_per_gather != max_parallel_workers
- max_parallel_workers vs. max_parallel_workers_per_gather
- confirm max_parallel_workers_per_gather (parallelism) is being utilized correctly
- getting "ERROR: unrecognized configuration parameter "max_parallel_workers_per_gather" while doing parallel processing in Postgres SQL