Postgresql 公开视图pg_stat_activity。根据文档,
backend_xid 表示此后端的顶级事务标识符(如果有)。
backend_xmin 表示当前后端的 xmin 范围。
让我们举个例子:
BEGIN;
# INSERT Statement1
# INSERT Statement2
COMMIT;
Run Code Online (Sandbox Code Playgroud)
backend_xid表示分配给整个事务的事务标识符,而如果pg_stat_activity在其行中显示语句 2,则backend_xmin对应xmin于语句 2。
理解正确吗?
这两个值代表事务的快照。
每当查询开始时(或者,在REPEATABLE READ隔离级别,当事务中的第一个查询开始时),PostgreSQL 会拍摄数据库的快照。这意味着查询(或事务)会看到数据库的某个状态,无论同时发生什么并发数据修改。
此类快照由当时任何活动事务的最旧事务 ID ( xmin)、最新活动事务的事务 ID ( xmax) 和所有当前活动事务的事务 ID 列表组成。借助这些数字,PostgreSQL 可以确定元组(行版本)是否可见。
backend_xmin是相关的,因为(与其他值一起)最旧的值决定了xminhorizon,这是 autovacuum 可以安全删除的死元组的截止点。
| 归档时间: |
|
| 查看次数: |
2186 次 |
| 最近记录: |