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

Но в какой то момент запрос сломался для определенного периода. Вместо

hash join используется nested loop.
С чем это может быть связано и как поправить ?

25 ответов

14 просмотров

https://t.me/pgsql/303899

Евгений-Иванов Автор вопроса
Yaroslav Schekin
https://t.me/pgsql/303899

версия 9.6 серьезно нужно прислать DDL всех таблиц ? Можете просто подсказать в какую сторону копать ?

Евгений Иванов
версия 9.6 серьезно нужно прислать DDL всех таблиц...

В идеале — да, нужно. Но для начала можно и без этого — покажите остальное.

Евгений Иванов
версия 9.6 серьезно нужно прислать DDL всех таблиц...

А, ну если хотите просто поболтать обо всяком -- то начните читать нормальный explain. По словам, да. Так картинка, которую вы представили -- даёт очень мало информацыи, и если бы вы умели читать вывод explain, то вы бы это понимали.

Евгений-Иванов Автор вопроса

Вот тут хеша вообще нету, а запрос тот же

Евгений Иванов
И запрос выполняется 30 сек

В принцыпе довольно ожыдаемо. А когда первым joinится EnergyConsumers -- меньшэ? (Банальный вопрос -- всё на одном диске или есть какие-то tablespaces?)

Евгений Иванов
Вот тут хеша вообще нету, а запрос тот же

Нежелание делать hashjoin теоретически может быть связано с недостатком workmem

Евгений-Иванов Автор вопроса
Ilya Anfimov
В принцыпе довольно ожыдаемо. А когда первым joinи...

Все на одном диске. На первый вопрос отвечу суть позже.

alex che
Нежелание делать hashjoin теоретически может быть ...

А, да, только сейчас понял почему там второй можэт быть настолько лучшэ. Трудно в -селе-без-нагана- запросе без explainа.

Евгений-Иванов Автор вопроса
Евгений-Иванов Автор вопроса
Ilya Anfimov
В принцыпе довольно ожыдаемо. А когда первым joinи...

Нет, время выполнения запроса увеличилось вдвое

Евгений Иванов
Нет, время выполнения запроса увеличилось вдвое

Ну, вдвое -- это не так чтобы большое отличие.

Евгений-Иванов Автор вопроса

Возвращаясь к моему вопросу. Вот запросы и explain + DDL Версия постгреса 9.6 Почему в одном случае делается через нестед луп, а во втором через хеш ? Кол-во записей +- одинаковое во всех периодах

Евгений Иванов
Возвращаясь к моему вопросу. Вот запросы и explain...

Ошыбка в оцэнке выборки из SiteInfos при BillingPeriod=73. Да и из SiteConnections тожэ. По идее, analyze siteinfos + analyze siteconnections должно это поправить. Кстати, запустите, и попробуйте посмотреть после. Возможно, что вмешывается какая-то ручная настройка статистики и аналитики. Но не очень представляю, чтобы такое было через просто set statistics.

Евгений Иванов
Возвращаясь к моему вопросу. Вот запросы и explain...

И да, смотреть -- в кардинальное отличие rows= и actual rows= в неправильном запросе.

Евгений Иванов
Возвращаясь к моему вопросу. Вот запросы и explain...

О, наконец-то тексты планов. ;) Потому что [огромная] ошибка в оценках в первом плане, сходу видно же: -> Index Scan using "IX_SiteInfos_BillingPeriodId" on "SiteInfos" site (cost=0.42..2.72 rows=1 width=169) (actual time=0.009..2.378 rows=7703 loops=1)

Евгений Иванов
Возвращаясь к моему вопросу. Вот запросы и explain...

И да, если простые действия не помогут -- то читайте здесь https://www.postgresql.org/docs/9.6/row-estimation-examples.html , смотрите глазами на pg_statistic.

Евгений-Иванов Автор вопроса
Ilya Anfimov
Ошыбка в оцэнке выборки из SiteInfos при BillingPe...

Большое спасибо !!!! Ситуацию решило analyse "SiteInfos"; analyse "SiteConnections";

Евгений Иванов
спасибо

Тут меня ещё удивляет, что в 9.6 -- там жэ и настроек статистики практически не было. Как-то странно, что что-то сломано.

Евгений Иванов
Большое спасибо !!!! Ситуацию решило analyse "Si...

А. То есть, общий analyze как-то не так запускался. Да, бывает. Но вообще -- смотрите, просто analyze без параметров от суперюзера должэн это всё проделывать. Посмотрите, почему он у вас не запускается периодически.

Евгений-Иванов Автор вопроса
Евгений Иванов
Не подскажите куда смотреть?

Это задача autovacuum. Проверьте, включён ли он, его настройки, когда он последний раз обрабатывал таблицы (см. pg_stat_user_tables, например).

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

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

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