Junior — Middle
Kako identifikovati i analizirati dugo trajući upit u PostgreSQL?
sobes.tech АИ
Одговор од АИ
Za identifikaciju dugotrajnih upita u PostgreSQL-u, možete koristiti sistemski prikaz pg_stat_activity, koji prikazuje trenutne aktivne upite i njihov vreme trajanja. Na primer, upit:
SELECT pid, now() - query_start AS duration, query
FROM pg_stat_activity
WHERE state = 'active'
ORDER BY duration DESC
LIMIT 5;
omogućava da vidite 5 najduže aktivnih upita.
Za dublju analizu, možete omogućiti logovanje sporih upita u postgresql.conf:
log_min_duration_statement = 1000 # logovanje upita dužih od 1000 ms
Nakon toga, svi upiti koji premaše ovo vreme biće zabeleženi u logovima.
Takođe je korisno koristiti alate za profilisanje i EXPLAIN ANALYZE za analizu plana izvršenja specifičnih upita i identifikaciju uskih grla.