Postgres 9.6; Centos 6.7; 24 ядра
BigTable1 содержит 1 500 000 000 строк; вес 180гб.
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 мы не смогли увидеть более значительных улучшений?
Спасибо!.