Sobes.tech
Junior — Middle

Ako identifikovať a analyzovať dlhodobo bežiaci dopyt v PostgreSQL?

sobes.tech AI

Odpoveď od AI

Na identifikáciu dlhodobo trvajúcich dopytov v PostgreSQL môžete použiť systémový pohľad pg_stat_activity, ktorý zobrazuje aktuálne aktívne dopyty a ich dobu trvania. Napríklad dopyt:

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

umožní vidieť 5 najdlhších aktívnych dopytov.

Pre hlbšiu analýzu môžete povoliť zaznamenávanie pomalých dopytov v súbore postgresql.conf:

log_min_duration_statement = 1000  # zaznamenávať dopyty trvajúce dlhšie ako 1000 ms

Po tomto budú všetky dopyty prekračujúce tento čas zaznamenané do logov.

Tiež je užitočné používať nástroje na profilovanie a EXPLAIN ANALYZE na analýzu plánu vykonávania konkrétnych dopytov a identifikáciu úzkych miest.