Sobes.tech
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 пайваст кунед.