172 похожих чатов

Добрый день имеется таблица с jsonb. с нее снимается некая статистика для

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

1 ответов

14 просмотров

Нет.

Похожие вопросы

Обсуждают сегодня

а через ESC-код ?
Alexey Kulakov
29
30500 за редактор? )
Владимир
47
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
Ребят в СИ можно реализовать ООП?
Николай
33
у вас два процесса. один посылает другому сигнал. у вас есть код обоих процессов? если всё не так - расскажите как оно на самом деле. а именно кто кому чего, есть-ли консоли,...
Karagy
6
вы делали что-то подобное и как? может есть либы готовые? увидел картинку нокода, где всё линиями соединено и стало интересно попробовать то же в ddl на lua сделать. решил с ч...
Victor
8
Карта сайта