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.