是否有可能保证postgres中并行集合函数的最小数量的工作程序?

问题描述

我对Postgresql一个自定义的并行聚合扩展,我希望每次使用聚合函数时至少有N个工作进程执行聚合。

是否可以告诉postgresql功能始终至少使用N个工作程序?

解决方法

您可以做的是在表上设置存储参数parallel_workers。然后,对该表的每次并行扫描都使用那么多工作程序。但这不能按功能完成,这很有意义,因为并行性是否有用取决于表。

此外,您将永远无法保证始终使用一定数量的工作程序,因为在群集范围内,并行工作程序的最大值为max_parallel_workers,如果达到此限制,您将不会获得并行工作器,即使优化器希望并行化。

我将把决定权留给优化器。