Size: a a a

pgsql – PostgreSQL

2021 February 09

IZ

Ilia Zviagin in pgsql – PostgreSQL
Dimitri Grinkevich
оформлять полное служебное несоответствие
+
источник

T

The2lb3oz4dr10½grOfH... in pgsql – PostgreSQL
Ilia Zviagin
с сохранением порядка ЧЕГО?
Очевидно, строк на диске :)
источник

ll

low low in pgsql – PostgreSQL
Спасибо всем, да мое решение это ORDER BY мне написали
источник
2021 February 10

b

blkmrkt in pgsql – PostgreSQL
max_parallel_workers можно ставить на уровне сессии? В доках ни слова нет про это, а на postgresqlco.nf написано  Context: user
источник

YS

Yaroslav Schekin in pgsql – PostgreSQL
blkmrkt
max_parallel_workers можно ставить на уровне сессии? В доках ни слова нет про это, а на postgresqlco.nf написано  Context: user
источник

b

blkmrkt in pgsql – PostgreSQL
ок, работает)
источник

b

blkmrkt in pgsql – PostgreSQL
А как заставить SELECT * FROM a распараллелить seqscan? max_parallel_workers_per_gather сейчас в системе 2, но в плане выполнения нет ни одной ноды Gather.
источник

b

blkmrkt in pgsql – PostgreSQL
Хотя странно, ведь нет смысла параллелить seqscan для большой таблицы, потому что мы мы это все отправим клиенту, и нужно будет либо держать остальные куски в памяти либо отправлять их в неправильном порядке
источник

b

blkmrkt in pgsql – PostgreSQL
Понял, сорри за конфуз, узкое горлышко тут не в пг а в клиенте который это мясо записывает в S3
источник

YS

Yaroslav Schekin in pgsql – PostgreSQL
blkmrkt
А как заставить SELECT * FROM a распараллелить seqscan? max_parallel_workers_per_gather сейчас в системе 2, но в плане выполнения нет ни одной ноды Gather.
Значит, планировщик считает, что это того не стоит.
И это зависит и от настроек costs (и можно и заставить использовать параллельные планы)... проще всего, см.:
SELECT name, setting, unit, context, short_desc
 FROM pg_settings
WHERE name LIKE '%parallel%';

и документацию про каждый из параметров, если нужно подробнее.
источник

b

blkmrkt in pgsql – PostgreSQL
Yaroslav Schekin
Значит, планировщик считает, что это того не стоит.
И это зависит и от настроек costs (и можно и заставить использовать параллельные планы)... проще всего, см.:
SELECT name, setting, unit, context, short_desc
 FROM pg_settings
WHERE name LIKE '%parallel%';

и документацию про каждый из параметров, если нужно подробнее.
Понял, просто в этой квери нет фильтра, соответственно нам нужны все туплы и нет смысла это делить на воркеры
источник

VY

Victor Yegorov in pgsql – PostgreSQL
blkmrkt
Понял, просто в этой квери нет фильтра, соответственно нам нужны все туплы и нет смысла это делить на воркеры
есть смысл делить на воркеры.
у вас точно SELECT * FROM a или что-то более сложное? может вместо a там развесистая VIEW с parallel unsafe функциями?
источник

b

blkmrkt in pgsql – PostgreSQL
Victor Yegorov
есть смысл делить на воркеры.
у вас точно SELECT * FROM a или что-то более сложное? может вместо a там развесистая VIEW с parallel unsafe функциями?
Да, там простая табличка на 3 терабайта, а завернута эта квери внутрь COPY
источник

VY

Victor Yegorov in pgsql – PostgreSQL
запрос покажите целиком, пожалуйста
источник

b

blkmrkt in pgsql – PostgreSQL
Victor Yegorov
запрос покажите целиком, пожалуйста
COPY (SELECT * FROM public.ios_app_sdk2) TO STDOUT (HEADER FALSE, ENCODING 'utf8', FORMAT 'text')
источник

VY

Victor Yegorov in pgsql – PostgreSQL
blkmrkt
COPY (SELECT * FROM public.ios_app_sdk2) TO STDOUT (HEADER FALSE, ENCODING 'utf8', FORMAT 'text')
должен параллелиться. поробуйте понизить (прям очень сильно) parallel_tuple_cost
хотя, скорее всего, вы тут в диски будете упираться…
источник

b

blkmrkt in pgsql – PostgreSQL
Victor Yegorov
должен параллелиться. поробуйте понизить (прям очень сильно) parallel_tuple_cost
хотя, скорее всего, вы тут в диски будете упираться…
Он и так 0.1 у меня...
источник

VY

Victor Yegorov in pgsql – PostgreSQL
это дефолт, высокий. поставьте 0.001 хотя бы
источник

b

blkmrkt in pgsql – PostgreSQL
Victor Yegorov
это дефолт, высокий. поставьте 0.001 хотя бы
еее параллелится, спасибо!
источник

b

blkmrkt in pgsql – PostgreSQL
Victor Yegorov
это дефолт, высокий. поставьте 0.001 хотя бы
А как оно на выхлопе будет поступать если 2 воркера читают диск?
источник