Sobes.tech
Junior — Middle

Kaip nustatyti ir analizuoti ilgai trunkančią užklausą PostgreSQL?

sobes.tech AI

Atsakymas iš AI

Norint identifikuoti ilgai trunkančias užklausas PostgreSQL, 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.