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