Ищем самые дорогие query в PostgreSQL
PostgreSQL стал тормозить? Давай разбираться!
Установка экстеншенов
Для получения необходимой инфы, нужно поставить 2 extension:
- pg_stat_statements
- pg_stat_kcache
Есть 2 ментальных ловушки
Не хочу еще больше грузить бедную БД
Оба этих расширения создают несколько системных табличек и вьюшек, в которые скидывается инфа о выполнении запросов.
Звучит страшно?
На практике при нагрузке 5000 запросов/сек включение этих экстеншенов никак не повлияло ни на CPU, ни на latency.
Не хочу что-то качать и хачить БД
Оба расширения стандартные и ставятся из коробки с PostgreSQL. Не стоит бояться слова CREATE. Реально, они просто включаются.
Анализируем
Короткий способ
Длинный способ
Потом достаем самые проблемные запросы по queryid
А можно сначала?
Да, можно сбросить статистику. Это происходит моментально и не влияет на производительность БД.
Вывод
Хватит уже бояться анализировать производительность запросов. Попробуй сейчас! Это просто и бесплатно.
Ну и пиши вопросы, интересные истории в комменты)