Там index scan выбирает 1 строку, а отбрасывает по условию

фильтра 154269 и так 56826 раз. в сумме выбирается 8 766 490 194 строк. может не надо выбирать столько строк? может всё таки дело в индексе/запросе/структуре регистра накопления? А во втором случае самый нижней узел плана выбирает ~2.5 млн (на глаз понятно). Конечно 2.5 млн выбрать быстрее будет чем 8 млрд. а на Nested Loop в первом случае тратятся вообще копейки от всего времени плана. так что может быть дело не в бобине всё таки..?

4 ответов

12 просмотров

Согласен что проблема в индексе/запросе/структуре, но конфигурация типовая, народ желанием не горит в неё лезть. Хотелось настройками postgres решить.

Alexander Y.- Автор вопроса
Сергей Мо
Согласен что проблема в индексе/запросе/структуре,...

А по поводу того что вы отключили Nested Loop и у вас эта операция стала вместо часа выполняться 5 секунд, это вовсе не означает что что-нибудь другое при этом не стало хуже. Если там всё на самом деле прям вот типовое, а лезть туда и допиливать чтобы работало быстрее никто не хочет могу посоветовать только минимизировать дисковые операции связанные с чтением. чтобы 8 млрд строк читались не с диска а из памяти. Загнать всю базу в память. убедиться что temp_buffers и work_mem Достаточно, сделать tablespace для временных таблиц в оперативной памяти.

Alexander Y.
А по поводу того что вы отключили Nested Loop и у ...

Да, с отключенным nested loop, другие документы тормозят, поэтому его отключать не вариант. Базу проблематично загнать в память, база 800 ГБ.

Alexander Y.- Автор вопроса
Сергей Мо
Да, с отключенным nested loop, другие документы то...

тут вопрос цены что предпочтительнее быстрее и дешевле для вас: 1) смириться и жить дальше, хоть и тормозит, но что-то делать дорого 2) нанять спеца, который зайдёт в конфигуратор ,посмотри что у вас есть и что-то поправит. вопрос в том сколько возьмёт спец, за сколько он это сделает (день, неделя, месяц, год?) и во сколько раз ускориться. 3) закпить памяти/сервера, в вашем случае возможно будет дороже чем спец, но зато какой-то результат прямо сразу, потому что бывают и сервера по 1 ТБ памяти и по 6 ТБ

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

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

Всем привет! Может кто поможет разобраться с чёрной магией? (во всяком случае для меня) Дело вот в чём - написал я код для общения с tmc2209 драйвером по half duplex uart. М...
pronvis
4
Друзья, за кем?
Magic
12
Почему Telegram пишет, что объект media не найден, хотя на самом деле я его передаю? Делаю на urllib, без зависимостей, так надо. Вызываю метод sendMediaGroup с таким JSON: ...
Alexey S
1
кто мешает подписать все соответствующие документы? мы открыты
Mary🍋
5
Погодь, а как ты переопределяешь функцию в хедере? Эрланг это же не С, тут явный вызов макросов
Maksim Lapshin
6
а вот скажем условно стоит задача научить автоматически ехать по дороге машину в гта распознавать линии полосы +- понятно как, но как определять сторону движения?
Дурачок Глупый
5
Господа, у меня важный культурологический вопрос непосредственно связанный с Erlang. Куда делся сайт http://erlang-mnesia-video.ru/ ?
Matwey Kornilov
3
Я вот думаю, может наш openapi разделить на валидатор и собственно openapi обвязку? Кто-то еще этим на таком же уровне занимается?
Maksim Lapshin
5
Парни, а можете ткнуть носом в толковую доку или пример как с помощью embedded_hal трейтов сделать SPI "драйвер" с DMA? А то достижения народной мазафаки больше напоминают ар...
Nikita Nazarenko
2
Здравствуйте, а хорошая ли идея смешивать нейронки? То есть, у нейронки задача щелкнуть 1 раз, но есть датасет с одним типом картинок и с другим. Хотелось бы сделать универсал...
Никита
5
Карта сайта