小编Any*_*nya的帖子

Postgres 9.6:并行查询不采用max_parallel_workers_per_gather设置

Postgres 9.6;Centos 6.7; 24核

BigTable1包含1,500,000,000行;重量180GB。

max_worker_processes = 20
max_parallel_workers_per_gather = 12
Run Code Online (Sandbox Code Playgroud)

1)跑步时

EXPLAIN
SELECT
    date_id, id1, id2, id3, id4, topdomain, ftype, SUM(imps), SUM(cls)
FROM BigTable1
WHERE
    date_id BETWEEN 2017021200 AND 2017022400             
    AND date_id BETWEEN 2017020000 AND 2017029999   
GROUP BY
date_id, id1, id2, id3, id4, topdomain, ftype;
Run Code Online (Sandbox Code Playgroud)

完全没有使用“计划的工人:”。为什么?

2)在定义的会话中运行相同查询时

set max_parallel_workers_per_gather = 5;
Run Code Online (Sandbox Code Playgroud)

出现“计划的工人数:5”。执行时间仅缩短了25%。

2.1)为什么仅在此设置之后出现“计划的工人:”?2.2)为什么在以max_parallel_workers_per_gather = 5运行时看不到更好的改进?

谢谢!。

postgresql parallel-processing explain postgresql-9.6

2
推荐指数
1
解决办法
5392
查看次数