Nay*_*nbo 2 database postgresql pgadmin
XID 和 TX 列中的分数代表什么。这是 postgres 的 pgadmin 工具的屏幕截图。
我知道 TX 和 XID 分别表示交易和交易 ID,但是我不明白分数表示法的含义。
虚拟交易 ID 具有“n/nnnn”格式。真正的 XID 只是整数。虚拟 xid 的第一部分是每个连接唯一的后端标识符;第二部分是该连接的后端为其事务分配的临时事务 ID。
有关详细信息,请参阅VirtualTransactionIdin的定义src/include/storage/lock.h。
这些列似乎对应于 virtualxid和/或transactionid和 中的virtualtransaction列pg_locks。请参阅文档。
如果我是对的,那么:
虚拟事务 ID 是 PostgreSQL 在事务开始时分配给每个事务的临时的、瞬态的事务 ID。它们没有记录在磁盘上。仅当事务执行需要事务性写入磁盘的操作时才会分配真正的 xid。
根据链接的手册:
每个事务在其整个持续时间内都对其虚拟事务 ID 持有独占锁。如果为事务分配了一个永久 ID(通常只有在事务更改数据库状态时才会发生),它还会对其永久事务 ID 持有排他锁,直到它结束。当一个事务发现有必要专门等待另一个事务时,它会尝试获取另一个事务 ID(虚拟或永久 ID,视情况而定)的共享锁。只有当另一个事务终止并释放其锁时,这才会成功。
| 归档时间: |
|
| 查看次数: |
3353 次 |
| 最近记录: |