Sobes.tech
Junior — Middle

PostgreSQL-де узак мөөнөттүү суроону кантип аныктап, талдайбыз?

sobes.tech AI

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 инструменттерин колдонуу, конкреттүү суроолордун аткаруу планынын анализи жана тыгындардын аныкталышы үчүн пайдалуу.