Back to questions
Junior — Middle
85
Каким образом выявить и проанализировать долго выполняющийся запрос в PostgreSQL?
Companies where asked
Магнит Тех
Answer from AI
sobes.tech AI
Для выявления долго выполняющихся запросов в PostgreSQL можно использовать системный представление pg_stat_activity, которое показывает текущие активные запросы и их время выполнения. Например, запрос:
SELECT pid, now() - query_start AS duration, query
FROM pg_stat_activity
WHERE state = 'active'
ORDER BY duration DESC
LIMIT 5;
позволит увидеть 5 самых долгих активных запросов.
Для более глубокого анализа можно включить логирование медленных запросов в postgresql.conf:
log_min_duration_statement = 1000 # логировать запросы дольше 1000 мс
После этого в логах будут записываться все запросы, выполняющиеся дольше указанного времени.
Также полезно использовать инструменты профилирования и EXPLAIN ANALYZE для анализа плана выполнения конкретных запросов и выявления узких мест.