Sobes.tech
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.