Sobes.tech
Junior — Middle

Cum identifici și analizezi o interogare care durează mult în PostgreSQL?

sobes.tech AI

Răspuns de la AI

Pentru identificarea interogărilor care durează mult în PostgreSQL, se poate utiliza vizualizarea sistemului pg_stat_activity, care afișează interogările active curente și timpul lor de execuție. De exemplu, interogarea:

SELECT pid, now() - query_start AS duration, query
FROM pg_stat_activity
WHERE state = 'active'
ORDER BY duration DESC
LIMIT 5;

va permite să vedeți cele 5 interogări active cele mai lungi.

Pentru o analiză mai profundă, se poate activa logarea interogărilor lente în fișierul postgresql.conf:

log_min_duration_statement = 1000  # logarea interogărilor care durează mai mult de 1000 ms

După aceasta, toate interogările care depășesc acest timp vor fi înregistrate în jurnale.

De asemenea, este util să folosiți instrumente de profilare și EXPLAIN ANALYZE pentru a analiza planul de execuție al interogărilor specifice și a identifica punctele de blocaj.