Junior — Middle
PostgreSQL-də uzun müddət davam edən sorğunu necə müəyyən etmək və təhlil etmək olar?
sobes.tech Süni İntellekt
AI-dan cavab
PostgreSQL-də uzun müddət davam edən sorğuları müəyyən etmək üçün, mövcud aktiv sorğuları və onların icra vaxtını göstərən pg_stat_activity sistem görünüşündən istifadə edə bilərsiniz. Məsələn, aşağıdakı sorğu:
SELECT pid, now() - query_start AS duration, query
FROM pg_stat_activity
WHERE state = 'active'
ORDER BY duration DESC
LIMIT 5;
ən uzun müddət davam edən 5 aktiv sorğunu görə bilərsiniz.
Daha dərin analiz üçün, postgresql.conf faylında yavaş sorğuların qeydiyyatını aktivləşdirə bilərsiniz:
log_min_duration_statement = 1000 # 1000 ms-dən uzun davam edən sorğuları qeyd et
Bundan sonra, bu vaxtdan çox olan bütün sorğular loglara qeyd olunacaq.
Həmçinin, profil qurma alətləri və EXPLAIN ANALYZE istifadə edərək, müəyyən sorğuların icra planını analiz etmək və tıxac nöqtələrini tapmaq faydalıdır.