Middle
Kā noteikt pakarušas transakcijas PostgreSQL?
sobes.tech AI
Atbilde no AI
PostgreSQL, iestrēgušās transakcijas ir tās, kas ilgstoši atrodas aktīvas vai idle in transaction stāvoklī, nesamazinoties. To identificēšanai var izmantot vaicājumu uz sistēmas katalogu pg_stat_activity.
Piemērs vaicājumam, lai atrastu šādas transakcijas:
SELECT pid, usename, state, query, xact_start, now() - xact_start AS duration
FROM pg_stat_activity
WHERE state IN ('idle in transaction', 'active')
AND xact_start IS NOT NULL
AND now() - xact_start > interval '5 minutes'
ORDER BY duration DESC;
Šeit mēs skatāmies uz transakcijām, kas ir stāvoklī "idle in transaction" vai "active" un ilgst vairāk nekā 5 minūtes. Šādas transakcijas var bloķēt citas operācijas un izraisīt aizkaves.
Lai veiktu dziļāku analīzi, var pārbaudīt bloķējumus, izmantojot pg_locks, un sasaistīt tos ar pg_stat_activity transakcijām.