Виртуалните идентификатори на транзакции имат формат "n/nnnn". Реалните XID са просто цели числа. Първата част на виртуалния xid е бекенд идентификатор, който е уникален за всяка връзка; втората част е временен идентификатор на транзакция, зададен от бекенда на тази връзка за нейните транзакции.
Вижте дефиницията на VirtualTransactionId
в src/include/storage/lock.h
за подробности.
Изглежда, че тези колони съответстват на virtualxid
и/или transactionid
и virtualtransaction
колони в pg_locks
. Вижте документите
.
Ако съм прав в това, тогава:
- "TX" е идентификаторът на виртуалната транзакция на транзакцията, която държи или чака заключването.
- "XID" е идентификаторът на виртуалната транзакция на транзакцията, към която е насочена чакащата транзакция, ако целта е виртуален xid. В PgAdmin може също да показва xid на целта, ако е нормален xid.
Идентификаторите на виртуални транзакции са временни, преходни идентификатори на транзакции, които PostgreSQL разпределя за всяка транзакция при стартиране на транзакция. Не са записани на диск. Истински xid се разпределя само когато транзакцията прави нещо, което изисква транзакционно записване на диск.
Според свързаното ръководство: