防止可能的PostgreSQL GUC参数竞争条件



假设我有两个数据库客户端并行执行针对PostgreSQL集群的查询。我决定让其中一个在2处使用max_paralle_workers_per_gather,另一个在6处使用。

因此,客户端#1将执行

exec("SET max_parallel_workers_per_gather=2; // A
SELECT * FROM large_scan; // B
");

客户#2将进行

exec("SET max_parallel_workers_per_gather=6; // C
SELECT * FROM other_large_scan; // D
");

我期望序列A->B->C->D,这样B和D就可以用指定的参数同时执行。但是A->C->B->D的顺序可能吗?这会给两个客户6分,这不是我想要的!

我正在使用SPI,我认为它不支持异步执行。

在会话中设置参数通常是该会话的本地设置。执行顺序可以是A->C->B->D,但这并不意味着B会关注C所做的事情。

相关内容

  • 没有找到相关文章

最新更新