ID transaksi virtual memiliki format "n/nnnn". XID nyata hanyalah bilangan bulat. Bagian pertama dari xid virtual adalah pengidentifikasi backend yang unik untuk setiap koneksi; bagian kedua adalah id transaksi sementara yang ditetapkan oleh backend koneksi tersebut untuk transaksinya.
Lihat definisi VirtualTransactionId
di src/include/storage/lock.h
untuk detailnya.
Kolom tersebut tampaknya sesuai dengan virtualxid
dan/atau transactionid
dan virtualtransaction
kolom di pg_locks
. Lihat dokumen
.
Jika saya benar dalam hal itu maka:
- "TX" adalah ID transaksi virtual dari transaksi yang menahan atau menunggu penguncian.
- "XID" adalah ID transaksi virtual dari transaksi yang ditargetkan oleh transaksi yang menunggu, jika targetnya adalah xid virtual. Di PgAdmin mungkin juga menunjukkan xid target jika itu xid normal.
ID transaksi virtual adalah ID transaksi sementara dan sementara yang dialokasikan PostgreSQL untuk setiap transaksi pada awal transaksi. Mereka tidak direkam pada disk. Sebuah xid nyata hanya dialokasikan ketika transaksi melakukan sesuatu yang memerlukan transaksional menulis ke disk.
Per manual tertaut: