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.
Ну, что ты как первый раз -- на случай скорости у нас закреп висит.
погнали: план при настройках как SSD DDL план настройки HDD запрос
Мда. Детально не прочитал, и, видимо, только ночью руки дойдут — но по первым прикидкам вроде непараллелящихся сегментов не появилось в плане "под ССД". А если parallel_tuple_cost и parallel_setup_cost в 0 поставить – то explain не начнёт воркеров предлагать?
заметил, explain почему то "Режет" параллельные воркеры.
Непонял. Строки Gather Merge, Parallel Join и Parallel seq scan должны остаться.
Непонял. Кост 90 мильонов — это скорее "хдд" настройки, тут он и так выбирался.
Вы бы лучше показывали EXPLAIN (ANALYZE, VERBOSE, BUFFERS, SETTINGS)... кстати, ни одной поддерживаемой версии PostgreSQL, где это не работает, больше нет. И да, зачем Вы показываете сгенерированный неведомо чем DDL, а не просто \d+? А в остальном — всё тут правильно, на первый взгляд.
легко DDL - так удобней просто
> легко Ну и тут всё нормально, так? Т.е. parallel workers при random_page_cost = '1.1' используются... или в чём проблема? > DDL - так удобней просто Кому удобнее, извините? Эта информации нужна для того, чтобы удобнее было тем, кто может Вам помочь. ;)
всё меняется если убрать explain )
Ну так тогда надо вытаскивать актуальные планы с помощью auto_explain. И да, дело тут не в EXPLAIN в любом случае (это совпадение), а либо в настройках тех сессий, либо в том, что нет workers и т.п.
А вы это где запускаете? В psql ?
Большинство драйверов пытаются declare cursor)
Здесь ничего "криминального" (кроме модели ;) ) нет, на первый взгляд. Т.е., опять-таки, ждёт Вас auto_explain.
Покажите потом. Не верю что в самом psql
Я таки непонял -- ты попробовал parallel_*_cost поставить в 0 и выполнить explain с настройками "под SSD"?
Обсуждают сегодня