продажников (что именно я не знаю, не дба)
хоть и размер таблицы совсем крохотный ~ 2гб
запрос идет очень долго, порядка 160 секунд
если посмотреть то он упирается в ресурсы cpu (одно из 16-ти ядер при запросе всегда 100% в юзерспейсе)
имеем следующие настройки
postgres=# show max_parallel_workers_per_gather;
max_parallel_workers_per_gather
---------------------------------
8
(1 row)
postgres=# show force_parallel_mode;
force_parallel_mode
---------------------
on
(1 row)
Вопрос, postgresql распаралеливает seq scan?
QUERY PLAN
-----------------------------------------------------------------------------------------------------------------
Merge Right Join (cost=2038271.72..1336406075.68 rows=88811045675 width=448)
Merge Cond: (boost_invoice.order_id = o.order_id)
CTE invoices
-> Nested Loop (cost=0.01..851707.13 rows=24221200 width=128)
-> Seq Scan on order_atomic_origin orders (cost=0.00..3965.12 rows=242212 width=18)
-> Function Scan on jsonb_array_elements invocies (cost=0.01..1.01 rows=100 width=32)
CTE orders
-> Seq Scan on order_atomic_origin orders_1 (cost=0.00..21525.49 rows=242212 width=356)
-> Sort (cost=558840.68..559143.44 rows=121106 width=96)
Sort Key: boost_invoice.order_id
-> CTE Scan on invoices boost_invoice (cost=0.00..544977.00 rows=121106 width=96)
Filter: (market_type = 'boost'::text)
-> Materialize (cost=606198.43..3174378.31 rows=146666632 width=384)
-> Merge Left Join (cost=606198.43..2807711.73 rows=146666632 width=384)
Merge Cond: (o.order_id = cluster_invoice.order_id)
-> Sort (cost=47357.75..47963.28 rows=242212 width=320)
Sort Key: o.order_id
-> CTE Scan on orders o (cost=0.00..4844.24 rows=242212 width=320)
-> Materialize (cost=558840.68..559446.21 rows=121106 width=96)
-> Sort (cost=558840.68..559143.44 rows=121106 width=96)
Sort Key: cluster_invoice.order_id
-> CTE Scan on invoices cluster_invoice (cost=0.00..544977.00 rows=121106 width=96)
Filter: (market_type = 'cluster'::text)
Нет.
Обсуждают сегодня