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

Привет. Есть какие нибудь рецепты как снизить время планирования при

использовании секционирования в PG 12? Тестируем переход с одной плоской 1ТБ таблицы на секции , планинг тайм скачет от 10мс до 600мс, что довольно большой оверхед.

22 ответов

17 просмотров

Хмм... а не должен бы (при стабильной нагрузке и подходящих запросах). А сколько секций, и это те же самые запросы? Можете показать планы?

Anton-Glushakov Автор вопроса
Yaroslav Schekin
Хмм... а не должен бы (при стабильной нагрузке и п...

секций чуть больше 100 (ключ - дата, нарезаны по месяцам). Чем больше секций попадает под условие- тем выше планнинг тайм

Anton-Glushakov Автор вопроса
Yaroslav Schekin
Хмм... а не должен бы (при стабильной нагрузке и п...

планы там простые, индекс скан по каждой секции. Вот думаю что схема не очень оптимальная. Где то читал что чем шире таблица - тем хуже. В таблице 50 колонок

Anton Glushakov
секций чуть больше 100 (ключ - дата, нарезаны по м...

Ну так это так и будет (чем больше план, тем дольше его создавать)... Вопрос-то в другом — это стабильно происходит для тех же планов (и т.п.)?

Anton-Glushakov Автор вопроса
Yaroslav Schekin
Ну так это так и будет (чем больше план, тем дольш...

Запросы одинаковые. Просто нагрузка больше похожа на oltp - 10-50мс - 90% запросов. И жертвовать еще до 500мс на планнинг, как то не очень. Есть выигрышь на небольшом кол-ве запросов которые возвращают большое кол-во строк, но их меньше 10%. В общем секции не про oltp видимо ...

Yaroslav Schekin
Ну так это так и будет (чем больше план, тем дольш...

Там сложность в том, что при планировании для каждой секции берётся lwlock на схему. Поэтому оно может неожиданно и произвольно вставать в ожидании блокировки.

Роман Жарков
Там сложность в том, что при планировании для кажд...

При планировании всегда всё это блокируется, и если у кого-то "неожиданно и произвольно" заклинивает планирование — я бы не сказал, что это нормально.

Anton Glushakov
Запросы одинаковые. Просто нагрузка больше похожа...

> Запросы одинаковые. Да я не об этом... вот если повторить 4 раза тот же запрос (один из "проблемных") — у него время планирования примерно одинаковое или нет? > В общем секции не про oltp видимо ... Как будто у Вас есть другой выход (если это более-менее типичная ситуация) при таблицах такого размера (без адекватного обслуживания всё это будет работать ещё хуже, скорее всего). :(

Anton-Glushakov Автор вопроса
Yaroslav Schekin
> Запросы одинаковые. Да я не об этом... вот есл...

Да, одинаковое. Как вариант проверю с меньшим количеством секций. Разбив по годам

Yaroslav Schekin
При планировании всегда всё это блокируется, и есл...

Под нагрузкой спинлоки ведут себя вот так. Это нормально, но плохо :)

Anton Glushakov
Да, одинаковое. Как вариант проверю с меньшим коли...

Тут бы Вам схему показать, чтобы кто-то мог у себя воспроизвести (именно планирование в типичных ситуациях от размера таблиц не зависит). Но на подготовку этого Вы можете потратить немало времени, и не факт, что это что-то даст, конечно.

Роман Жарков
Под нагрузкой спинлоки ведут себя вот так. Это нор...

Так там всё каждый раз одинаковое, как видите. Т.е. locks вообще ни при чём, по идее (если это и на тесте / с одним клиентам тоже так).

Anton-Glushakov Автор вопроса
Yaroslav Schekin
Тут бы Вам схему показать, чтобы кто-то мог у себя...

примерно такая схема, вырезал индексы и один фк. Триггеров и прочих извращений нет. https://pastebin.com/qxmixy1J в запросах всегда есть условие по acckey & sdate

Anton Glushakov
примерно такая схема, вырезал индексы и один фк. Т...

(Дошли руки) Хмм... а зря вырезали, видимо. См. https://dpaste.org/FydG Как-то всё быстро, на первый взгляд...

Anton-Glushakov Автор вопроса
Yaroslav Schekin
(Дошли руки) Хмм... а зря вырезали, видимо. См. ht...

Ну 11мс тоже не мало, на плоской было меньше 0.5мс. Но все равно спасибо, есть над чем подумать. У вас минорная версия какая?

Anton Glushakov
Ну 11мс тоже не мало, на плоской было меньше 0.5мс...

Опять-таки, тут уж ничего не поделаешь — медленнее планировать, когда сотни таблиц (в том же примере, если попадает в план только 1 таблица — это 1 мс, если 12 — 2 мс.). Версия 12.4.

Anton-Glushakov Автор вопроса
Anton Glushakov
У меня 12.1. Надо на 12.4 проверить на всякий

Зачем Вы на не актуальном minor вообще сидите — проблем в жизни мало? ;) Может быть, что там исправили какой-то bug, в самом деле (но, скорее всего, всё-таки индексы и FK "виноваты" — чем их больше, тем планирование медленнее).

Anton-Glushakov Автор вопроса
Yaroslav Schekin
Зачем Вы на не актуальном minor вообще сидите — пр...

Такова политика rhel, и его пакетов в стрим 😔

Anton Glushakov
Такова политика rhel, и его пакетов в стрим 😔

Что?! ;) Т.е. они поставляют продукт с публично известными security issues?! https://why-upgrade.depesz.com/show?from=12.1&to=12.4 "Здорово", если так.

Anton-Glushakov Автор вопроса
Grigory Smolkin
Есть же pgdg пакеты для rhel

Да, но к сожалению, пока условия не позволяют использовать.

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

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

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
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
Карта сайта