продажников (что именно я не знаю, не дба)
                  
                  
                  хоть и размер таблицы совсем крохотный ~ 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)
                  
                  
                
Нет.
Обсуждают сегодня