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

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

4 ответов

26 просмотров

Согласен что проблема в индексе/запросе/структуре, но конфигурация типовая, народ желанием не горит в неё лезть. Хотелось настройками 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 ТБ

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

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

Гайс, вопрос для разносторонее развитых: читаю стрим с юарта, нада выделять с него фреймы с определенной структурой, если ли чо готовое, или долбаться с ринг буффером? нада у...
Vitaly
9
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
длина пакета фиксированная, или меняется?
Okhsunrog
7
Вот еще странный косяк, подскажите как бороться. Я git clone сделал себе всего embassy и примеры там запускаю. Всё хорошо. Но вот решил в cargo.toml зависимости не как в приме...
Lukutin R2AJP
5
А в каком формате фреймы? Сам формат сейчас придумываешь, или что-то готовое нужно распарсить?
Okhsunrog
5
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
Добрый вечер, Пока не совсем понимаю как наладить общение между телеграм ботом и ПО для работы с сим боксом. По самому боту так понял: - Нужен некий баланс, который можно поп...
Magic
6
Всем привет, нужна как никогда, нужна помощь с IO в загрузчике. Пишу в code16 после установки сегментных регистров, пишу вывод символа. Пробовал 2 варианта: # 1 mov $0x0E, %a...
Shadow Akira
14
Раз начали говорить про embassy, то присоединюсь со своими парой вопросов. 1) Есть ли сопоставимые аналоги для асинхронного кода в emdebbed? 2) Можно ли внутри задач embassy ...
NI_isx
6
сделал сайт, прикрутил в боте сайт, и виджет логина. как автоматически логинить пользователя в аккаунт(телеграм), при входе с бота?
Александра Чернивецкая
5
Карта сайта