问题描述
我对Postgresql有一个自定义的并行聚合扩展,我希望每次使用聚合函数时至少有N个工作进程执行聚合。
是否可以告诉postgresql该功能始终至少使用N个工作程序?
解决方法
您可以做的是在表上设置存储参数parallel_workers
。然后,对该表的每次并行扫描都使用那么多工作程序。但这不能按功能完成,这很有意义,因为并行性是否有用取决于表。
此外,您将永远无法保证始终使用一定数量的工作程序,因为在群集范围内,并行工作程序的最大值为max_parallel_workers
,如果达到此限制,您将不会获得并行工作器,即使优化器希望并行化。
我将把决定权留给优化器。