В тему сохранения долгих запросов (и не только) могу добавить рекомендацию почитать про pg_profile. А для облегчения чтения логов - pgBadger. Вдруг кому-нибудь окажется полезным.
Не обязательно. Тут может быть несколько подходов:
1) Если планировщик не оптимально выбрал метод из-за устаревшей статистики по некоторой таблице, может помочь своевременный запуск ANALYSE по этой таблице перед запуском запроса. Часто его использовать не стоит - может долго выполняться, но с некоторой периодичностью может быть полезно.
2) Раз выяснили, что отключение Nested Loop хорошо работает для этого запроса (несмотря на большое число операций в нём), можно «прилепить» этот SET к запросу (SET LOCAL внутри транзакции).
3) Самый элегантный способ, чтобы не переписывать запрос и не делать дополнительных действий: добавить к нему hint.
Расширение pg_hint_plan с открытым исходным кодом и совместимо со всеми поддерживаемыми версиями PostgreSQL. Инструкция по установке из официального репозитория В Pro версию тоже входит, поэтому русскоязычная документация по модулю расположена в разделе enterprise
Может, установлен флаг?
--noexplain : do not process lines generated by auto_explain
Спасибо!
В тему сохранения долгих запросов (и не только) могу добавить рекомендацию почитать про pg_profile. А для облегчения чтения логов - pgBadger.
Вдруг кому-нибудь окажется полезным.
Не обязательно. Тут может быть несколько подходов:
1) Если планировщик не оптимально выбрал метод из-за устаревшей статистики по некоторой таблице, может помочь своевременный запуск ANALYSE по этой таблице перед запуском запроса. Часто его использовать не стоит - может долго выполняться, но с некоторой периодичностью может быть полезно.
2) Раз выяснили, что отключение Nested Loop хорошо работает для этого запроса (несмотря на большое число операций в нём), можно «прилепить» этот SET к запросу (SET LOCAL внутри транзакции).
3) Самый элегантный способ, чтобы не переписывать запрос и не делать дополнительных действий: добавить к нему hint.
Расширение pg_hint_plan с открытым исходным кодом и совместимо со всеми поддерживаемыми версиями PostgreSQL. Инструкция по установке из официального репозитория
В Pro версию тоже входит, поэтому русскоязычная документация по модулю расположена в разделе enterprise