XID 和 TX 列中的分数代表什么。这是 postgres 的 pgadmin 工具的屏幕截图。
我知道 TX 和 XID 分别表示交易和交易 ID,但是我不明白分数表示法的含义。
虚拟事务 ID 的格式为“n/nnnn”。真正的 XID 只是整数。虚拟 xid 的第一部分是每个连接唯一的后端标识符;第二部分是该连接的后端为其事务分配的临时事务 ID。
参见定义VirtualTransactionId
in src/include/storage/lock.h
了解详情。
这些列似乎对应于virtualxid
and/or transactionid
and virtualtransaction
中的列pg_locks
. See the docs http://www.postgresql.org/docs/current/static/view-pg-locks.html.
如果我是正确的那么:
- “TX”是持有或等待锁的事务的虚拟事务ID。
- 如果目标是虚拟 xid,“XID”是等待事务的目标事务的虚拟事务 ID。在 PgAdmin 中,如果目标的 xid 是普通 xid,它也可能会显示。
虚拟事务 ID 是 PostgreSQL 在事务开始时分配给每个事务的临时、瞬态事务 ID。它们没有记录在磁盘上。仅当事务执行需要事务性写入磁盘的操作时,才会分配真正的 xid。
根据链接的手册:
每个事务在其整个持续时间内都对其虚拟事务 ID 持有独占锁。如果将永久 ID 分配给事务(通常仅当事务更改数据库状态时才会发生),它还会对其永久事务 ID 持有独占锁,直到其结束。当一个事务发现有必要专门等待另一事务时,它会通过尝试获取另一个事务 ID(虚拟 ID 或永久 ID,具体取决于情况)上的共享锁来实现。仅当另一个事务终止并释放其锁时,该操作才会成功。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)