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

Всем доброго времени суток. Есть агрегирующий запрос, соединяющий три таблицы. Postgresql

15.5 (16 CPU / 32 RAM / SSD)

Странное поведение вот в чем. Если выставлять параметры:
random_page_costs
effective_io_concurrency
как для SSD дисков (1.1 и 200 соответственно), то сервер не запускает параллельные "воркеры",
А если эти же параметры настроить как для HDD (4 и 2 соответственно), то параллельные воркеры запускаются.
И разница в запросе 3 минуты при настройках как для SSD или 40 секунд при настройке, как для HDD.

Это нормальное поведение сервера ?
Размер базы порядка 80 GB.

19 ответов

46 просмотров

Ну, что ты как первый раз -- на случай скорости у нас закреп висит.

Ilya Anfimov
Ну, что ты как первый раз -- на случай скорости у ...

погнали: план при настройках как SSD DDL план настройки HDD запрос

Марсель Габдрахманов
погнали: план при настройках как SSD DDL план нас...

Мда. Детально не прочитал, и, видимо, только ночью руки дойдут — но по первым прикидкам вроде непараллелящихся сегментов не появилось в плане "под ССД". А если parallel_tuple_cost и parallel_setup_cost в 0 поставить – то explain не начнёт воркеров предлагать?

Ilya Anfimov
Мда. Детально не прочитал, и, видимо, только ночью...

заметил, explain почему то "Режет" параллельные воркеры.

Марсель Габдрахманов
заметил, explain почему то "Режет" параллельные во...

Непонял. Строки Gather Merge, Parallel Join и Parallel seq scan должны остаться.

Марсель Габдрахманов
выбирает их

Непонял. Кост 90 мильонов — это скорее "хдд" настройки, тут он и так выбирался.

Марсель Габдрахманов
погнали: план при настройках как SSD DDL план нас...

Вы бы лучше показывали EXPLAIN (ANALYZE, VERBOSE, BUFFERS, SETTINGS)... кстати, ни одной поддерживаемой версии PostgreSQL, где это не работает, больше нет. И да, зачем Вы показываете сгенерированный неведомо чем DDL, а не просто \d+? А в остальном — всё тут правильно, на первый взгляд.

Марсель Габдрахманов
легко DDL - так удобней просто

> легко Ну и тут всё нормально, так? Т.е. parallel workers при random_page_cost = '1.1' используются... или в чём проблема? > DDL - так удобней просто Кому удобнее, извините? Эта информации нужна для того, чтобы удобнее было тем, кто может Вам помочь. ;)

Марсель Габдрахманов
всё меняется если убрать explain )

Ну так тогда надо вытаскивать актуальные планы с помощью auto_explain. И да, дело тут не в EXPLAIN в любом случае (это совпадение), а либо в настройках тех сессий, либо в том, что нет workers и т.п.

Марсель Габдрахманов
всё меняется если убрать explain )

Большинство драйверов пытаются declare cursor)

Марсель Габдрахманов
исправляюсь )

Здесь ничего "криминального" (кроме модели ;) ) нет, на первый взгляд. Т.е., опять-таки, ждёт Вас auto_explain.

Марсель Габдрахманов
psql

Покажите потом. Не верю что в самом psql

Марсель Габдрахманов
исправляюсь )

Я таки непонял -- ты попробовал parallel_*_cost поставить в 0 и выполнить explain с настройками "под SSD"?

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

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

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта