Junior — Middle
Kuidas tuvastada ja analüüsida PostgreSQL-is pikka aega kestvat päringut?
sobes.tech AI
Vastus AI-lt
PostgreSQL-is pikemaidžiamų užklausų identifikavimui galite naudoti sisteminį vaizdą pg_stat_activity, kuris rodo esamas aktyvias užklausas ir jų vykdymo laiką. Pavyzdžiui, užklausa:
SELECT pid, now() - query_start AS duration, query
FROM pg_stat_activity
WHERE state = 'active'
ORDER BY duration DESC
LIMIT 5;
leidžia pamatyti 5 ilgiausiai trunkančias aktyvias užklausas.
Gilesnei analizei galite įjungti lėtų užklausų registravimą postgresql.conf faile:
log_min_duration_statement = 1000 # registruoti užklausas, trunkančias ilgiau nei 1000 ms
Po to, visos užklausos, viršijančios šį laiką, bus įrašytos žurnaluose.
Taip pat naudinga naudoti profilavimo įrankius ir EXPLAIN ANALYZE, kad analizuotumėte konkrečių užklausų vykdymo planą ir nustatytumėte spąstus.