假设我有两个数据库客户端并行执行针对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所做的事情。