Postgres 9.6; Centos 6.7; 24个核心
BigTable1 包含1,500,000,000行;重量为180GB。
max_worker_processes = 20
max_parallel_workers_per_gather = 12
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;
为什么没有使用“计划中的工作程序”?
2) 在定义会话时运行相同的查询
set max_parallel_workers_per_gather = 5;
出现“计划工作人员:5”。仅通过25%改善了执行时间。
2.1)为什么只有在此设置后才出现“计划工作人员:”? 2.2)为什么当使用max_parallel_workers_per_gather = 5运行时,我们看不到更好的改进?
谢谢!