📌 Если у вас база под нагрузкой, и “что-то всё стало медленно”, первым делом проверьте:
SELECT pid, now() - query_start AS duration, query
FROM pg_stat_activity
WHERE state = 'active'
ORDER BY duration DESC
LIMIT 5;
Этот запрос показывает топ-5 самых долгих активных запросов. Обратите внимание на
query_start - именно он поможет понять, кто завис и тормозит остальных.А если хотите посмотреть историю медленных запросов за последние часы/дни - подключайте pg_stat_statements:
SELECT
calls,
total_time,
mean_time,
query
FROM pg_stat_statements
ORDER BY total_time DESC
LIMIT 10;
🔍 Тут видно, какие запросы в сумме "съели" больше всего времени. И это гораздо честнее, чем смотреть только на
mean_time или calls по отдельности.💡Совет: подключите
pg_stat_statements на проде и делайте такой анализ хотя бы раз в неделю. Это поможет находить проблемные места в приложении до того, как начнётся пожар.📲 Мы в MAX
#db
👉 @database_info