Sobes.tech
Назад к вопросам
Junior — Middle
84

Каким образом выявить и проанализировать долго выполняющийся запрос в PostgreSQL?

Компании, где спрашивали
Магнит Тех

Ответ от нейросети

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 для анализа плана выполнения конкретных запросов и выявления узких мест.