0

假设我有两个数据库客户端并行执行对 PostgreSQL 集群的查询。我决定让其中一个在 2 时使用max_parallel_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 。

4

1 回答 1

1

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

于 2020-03-21T00:26:33.397 回答