Junior — Middle
PostgreSQL'da uzoq davom etayotgan so'rovni qanday aniqlash va tahlil qilish mumkin?
sobes.tech AI
AIdan javob
PostgreSQL'da uzun vaqt davom etadigan so'rovlarni aniqlash uchun, joriy faol so'rovlar va ularning bajarilish vaqtini ko'rsatadigan pg_stat_activity tizim ko'rinishidan foydalanish mumkin. Masalan, quyidagi so'rov:
SELECT pid, now() - query_start AS duration, query
FROM pg_stat_activity
WHERE state = 'active'
ORDER BY duration DESC
LIMIT 5;
eng uzun davom etayotgan 5 ta faol so'rovni ko'rishga imkon beradi.
Yuqori chuqurlikdagi tahlil uchun, postgresql.conf faylida sekin so'rovlarni log qilishni yoqish mumkin:
log_min_duration_statement = 1000 # 1000 ms dan uzun davom etadigan so'rovlarni log qilish
Shundan so'ng, bu vaqtdan oshgan barcha so'rovlar loglarga yoziladi.
Shuningdek, profiling vositalari va EXPLAIN ANALYZE yordamida aniq so'rovlarning bajarilish rejasini tahlil qilish va muammoli nuqtalarni aniqlash foydalidir.