为什么max_parallel_workers_per_gather不等于max_parallel_workers?

3

我看到很多帖子和论文设定以下值:

max_parallel_workers - 将数字设置为核心数。

max_parallel_workers_per_gather - 默认设置为2,或者设置为 max_parallel_workers / 2

当使用并行查询时,基于 max_parallel_workers_per_gather 的好处和速度提高是显著的。

  • 为什么我找不到推荐将 max_parallel_workers_per_gather = max_parallel_workers 设置的帖子?
  • 如果我们将 max_parallel_workers_per_gather = max_parallel_workers 设为相同的值,可能会有哪些陷阱?
1个回答

7

max_parallel_workers 定义了一个工作池,每个运行的查询都可以从该池中获取工作者,最多可取出 max_parallel_workers_per_gather 个。

如果将这两个值设置为相同,则意味着一个查询可能会使用所有可用的工作者,而同时运行的其他查询则无法使用并行查询,即使它也能从中受益。

如果您一次只运行一个语句,则可以将它们都设置为相同的值。但是如果您有一个繁忙的系统,在该系统中您期望有许多并发查询并希望其中多个查询受益于使用多个工作者,则最好保持 max_parallel_workers_per_gather 小于最大值。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接