ID giao dịch ảo có định dạng "n / nnnn". XID thực chỉ là số nguyên. Phần đầu tiên của xid ảo là một mã định danh phụ trợ duy nhất cho mỗi kết nối; phần thứ hai là id giao dịch tạm thời được chỉ định bởi phần phụ trợ của kết nối đó cho các giao dịch của nó.
Xem định nghĩa của VirtualTransactionId
trong src/include/storage/lock.h
để biết chi tiết.
Các cột đó dường như tương ứng với virtualxid
và / hoặc transactionid
và virtualtransaction
các cột trong pg_locks
. Xem tài liệu
.
Nếu tôi đúng trong đó thì:
- "TX" là ID giao dịch ảo của giao dịch đang giữ hoặc đang chờ khóa.
- "XID" là ID giao dịch ảo của giao dịch được nhắm mục tiêu bởi giao dịch đang chờ, nếu mục tiêu là xid ảo. Trong PgAdmin, nó cũng có thể hiển thị xid của mục tiêu nếu đó là xid bình thường.
ID giao dịch ảo là ID giao dịch tạm thời, thoáng qua mà PostgreSQL phân bổ cho mọi giao dịch khi bắt đầu giao dịch. Chúng không được ghi trên đĩa. Một xid thực chỉ được cấp phát khi giao dịch thực hiện điều gì đó yêu cầu ghi giao dịch vào đĩa.
Theo sách hướng dẫn được liên kết: