в gather worker хотя б
-> Parallel Bitmap Heap Scan on hosts h (cost=1488.81..6546.83 rows=2704 width=8) (actual time=1.314..2.271 rows=879 loops=5) Recheck Cond: (status = ANY ('{0,1}'::integer[])) Heap Blocks: exact=236 Buffers: shared hit=850 -> Bitmap Index Scan on hosts_2 (cost=0.00..1487.19 rows=6490 width=0) (actual time=1.058..1.059 rows=4396 loops=1) Index Cond: (status = ANY ('{0,1}'::integer[])) Buffers: shared hit=65
Спасибо, значит бывает . хочу проверить поможет ли это моему запросу, но максимум что смог это заставить выбрать просто bitmap scan отключая другие варианты через enable_ = off , но вот parallel не выбирается никак. Как мне его склонить к сотрудничеству?
Ещё есть force_parallel_mode... но не факт, что его одного хватит — его оценочная стоимость всё равно должна быть ниже альтернатив.
> More specifically, setting this value to on will add a Gather Вроде не совсем то, parallel bitmap scan же без gather
Ну так я предупреждал, что одного его... см. выше. ;)
Я не совсем понимаю, что вы имеете ввиду. Для теста я не могу заставить выбрать parallel вариант bitmap, просто bitmap смог , а parallel нет. Вы предлагаете force_parallel_mode, который весь запрос делает gather , но parallel bitmap scan же не через gather работает, он просто внутри параллелится если я правильно понимаю
Я думал, что, может быть, у Вас вообще не получается параллельный план... А так, опять-таки — меняйте costs до тех пор, пока по оценкам этот план не станет выгоднее...
Как можно поменять costs для фиксированного запроса, т.е. не меняя количество выбираемых строк?
Естественно, меняя planner cost constants — в первую очередь см. parallel_setup_cost и parallel_tuple_cost. А если этого не хватит — Вы могли бы и запрос/план тут показать...
Обсуждают сегодня