Postgresql公开视图pg_stat_activity
。根据文档 https://www.postgresql.org/docs/9.4/monitoring-stats.html,
backend_xid
表示该后端的顶级事务标识符(如果有)。
backend_xmin
表示当前后端的 xmin 范围。
让我们举个例子:
BEGIN;
# INSERT Statement1
# INSERT Statement2
COMMIT;
backend_xid
表示分配给完整交易的交易标识符,而如果pg_stat_activity
在其行中显示语句2,然后backend_xmin
对应于xmin
对于声明2。
理解正确吗?
这两个值代表snapshot交易的。
每当查询开始时(或者,使用REPEATABLE READ
隔离级别(当事务中的第一个查询开始时),PostgreSQL 会拍摄数据库的快照。这意味着查询(或事务)会看到数据库的某种状态,无论同时发生什么并发数据修改。
这样的快照由当时任何活动事务的最旧事务 ID 组成(xmin
), 最新活跃交易的交易 ID (xmax
)以及所有当前活动交易的交易 ID 列表。借助这些数字,PostgreSQL 可以确定元组(行版本)是否是visible or not.
backend_xmin
是相关的,因为(与其他值一起)最旧的值决定了xmin
horizon,这是 autovacuum 可以安全删除的死元组的分界点。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)