dataiotech Labs
dbaguidedbaguideDBAdataxtoolsdataopsphere
Script #1
postgresql
Performanceread-onlyMin Version: 9.6

PostgreSQL'de Uzun Süren Sorguları ve Idle in Transaction Oturumlarını Bulma

Bir dakikadan uzun süredir çalışan sorguları, bekleme olaylarını ve vacuum'u engelleyen idle in transaction oturumlarını listeler. Performans olaylarında ilk bakılacak script'tir.

#pg_stat_activity#long-running#sessions#incident
postgresql · sql
SELECT pid, usename, datname, state,
       now() - query_start AS query_age,
       now() - xact_start  AS xact_age,
       wait_event_type, wait_event,
       left(query, 200) AS query
FROM pg_stat_activity
WHERE pid <> pg_backend_pid()
  AND state <> 'idle'
  AND now() - query_start > interval '1 minute'
ORDER BY query_start;
Operasyonel Notlar & İyileştirme Aksiyonu

`idle in transaction` oturumları vacuum'u engeller. Sonlandırmak için (yazma etkisi) `SELECT pg_cancel_backend(pid);`, olmazsa `pg_terminate_backend(pid)`.

Üretim Güvenliği & Çalıştırma Standartları
  • Bu script salt okunur (read-only) teşhis için tasarlanmıştır; doğrudan veri veya şema değişikliği yapmaz.
  • Ağır yük altındaki üretim sunucularında çalıştırmadan önce hedef veritabanı sürümünü (Min. Sürüm: 9.6) doğrulayın.
  • İlişkili oturumu sonlandırma veya indeks silme gibi yazma etkili aksiyonlar için notlar bölümündeki komutları temkinli uygulayın.