↑↓ 选择↵ 打开⌫ 切换范围完整搜索

PG.CENTER 连接 PostgreSQL 文档、百科与生态知识。由 Pigsty 维护。

Wiki / 系统目录

pg_locks

视图pg_locks提供了对数据库服务器中活动进程持有的锁的信息的访问。有关锁定的更多讨论,请参见第 13 章。 pg_locks为每个活动的可锁定对象、请求的锁模式及相关进程的组合提供一行。因此,如果多个进程正在持有或等待锁定它,同一可锁定对象可能会出现多次。但是,当前没有任何锁定的对象将不会出现。 有几种不同类型的可锁定对象:整个关系(例如,表),关系的单个页面,关系的单个元组,事务ID(虚拟和永久ID均包括),以及一般的数据库对象(由类OID和对象OID标识,与pg_description或 pg_depend中的方式相同)。此外,扩展关系的权利被表示为单独的可锁定对象,更新 pg_database.datfrozenxid的权利也是如此。此外,还可以对具有用户定义含义的数字施加“咨询锁”。

英文手册覆盖始于 PostgreSQL 7.4. 来源历史与运行验证各自保留独立版本边界。

当前阅读 PG 18·选择有来源记录的版本

kind
view
lang
en
measured attributes
true
metadata release
18.6
runtime columns
locktype, database, relation, page, tuple, virtualxid, transactionid, classid, objid, objsubid, virtualtransaction, pid, mode, granted, fastpath, waitstart
runtime verified
false
source
english-manual

版本定义 PG 18

视图pg_locks提供了对数据库服务器中活动进程持有的锁的信息的访问。有关锁定的更多讨论,请参见第 13 章。 pg_locks为每个活动的可锁定对象、请求的锁模式及相关进程的组合提供一行。因此,如果多个进程正在持有或等待锁定它,同一可锁定对象可能会出现多次。但是,当前没有任何锁定的对象将不会出现。 有几种不同类型的可锁定对象:整个关系(例如,表),关系的单个页面,关系的单个元组,事务ID(虚拟和永久ID均包括),以及一般的数据库对象(由类OID和对象OID标识,与pg_description或 pg_depend中的方式相同)。此外,扩展关系的权利被表示为单独的可锁定对象,更新 pg_database.datfrozenxid的权利也是如此。此外,还可以对具有用户定义含义的数字施加“咨询锁”。

目录列

列类型可空性描述
locktypetext可空可锁定对象的类型:relation,extend,frozenid,page,tuple,transactionid,virtualxid,spectoken,object,userlock,advisory 或 applytransaction。(另请参见表 27.11。)
databaseoid可空锁目标存在的数据库的OID,如果目标是一个共享对象则为0,如果目标是一个事务ID则为 NULL
relationoid可空作为锁目标的关系的OID,如果目标既不是关系,也不是关系的一部分则此列为 NULL
pageint4可空作为锁目标的页在关系中的页号,如果目标不是一个关系页或元组则此列为 NULL
tupleint2可空作为锁目标的元组在页中的元组号,如果目标不是一个元组则此列为 NULL
virtualxidtext可空作为锁目标的事务的虚拟 ID,如果目标不是虚拟事务 ID,则为 NULL;见第 67 章
transactionidxid可空作为锁目标的事务的 ID,如果目标不是事务 ID,则为 NULL;第 67 章
classidoid可空包含锁目标的系统目录的OID,如果目标不是一个普通数据库对象则此列为 NULL
objidoid可空锁目标在它的系统目录中的OID,如果目标不是一个普通数据库对象则为 NULL
objsubidint2可空锁的目标列号(classid和objid指表本身),如果目标是某种其他普通数据库对象则此列为0,如果目标不是一个普通数据库对象则此列为 NULL
virtualtransactiontext可空持有这个锁或者正在等待这个锁的事务的虚拟ID
pidint4可空持有这个锁或者正在等待这个锁的服务器进程的PID,如果此锁被一个预备事务所持有则此列为 NULL
modetext可空此进程已持有或者希望持有的锁模式的名称(参见第 13.3.1 节和第 13.2.3 节)
grantedbool可空如果锁已授予则为真,如果锁被等待则为假
fastpathbool可空如果锁通过快速路径获得则为真,通过主锁表获得则为假
waitstarttimestamptz可空服务器进程开始等待该锁的时间;如果锁已被授予则为 NULL。注意,在开始等待之后,即使granted为false,该值在极短时间内也可能仍为 NULL。

比较版本

来源引用

完整定义与证据 JSON

定义来源

center · PostgreSQL 18 · english-manuals:1a394737c3f59cb427706a23a53bb587470885cb6d5887f07ead65078241fc63

正文语言: zh-Hans · 2026-09-27@419045e