Middle
Чӣ гуна муайян кардан мумкин аст, ки транзаксияҳо дар PostgreSQL чӣ гуна баста шудаанд?
sobes.tech AI
Ҷавоб аз AI
Дар PostgreSQL, транзаксияҳои дар ҳоли иҷро дарозмуддат дар ҳолати 'active' ё 'idle in transaction' мемонанд, ва ба анҷом нарасидаанд. Барои муайян кардани онҳо, метавонед дархостро ба каталоги системавии pg_stat_activity истифода баред.
Масалан, дархост барои ҷустуҷӯи чунин транзаксияҳо:
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;
Ин ҷо мо транзаксияҳоро мебинем, ки дар ҳолати "idle in transaction" ё "active" қарор доранд ва бештар аз 5 дақиқа давом мекунанд. Ин транзаксияҳо метавонанд дигар амалиётҳоро банд кунанд ва ба даргирӣ оварда расонанд.
Барои таҳлили амиқтар, метавонед бандшавиро тавассути pg_locks санҷед ва онҳоро бо транзаксияҳои pg_stat_activity пайваст кунед.