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的权利也是如此。此外,还可以对具有用户定义含义的数字施加“咨询锁”。
目录列
| 列 | 类型 | 可空性 | 描述 |
|---|---|---|---|
| locktype | text | 可空 | 可锁定对象的类型:relation,extend,frozenid,page,tuple,transactionid,virtualxid,spectoken,object,userlock,advisory 或 applytransaction。(另请参见表 27.11。) |
| database | oid | 可空 | 锁目标存在的数据库的OID,如果目标是一个共享对象则为0,如果目标是一个事务ID则为 NULL |
| relation | oid | 可空 | 作为锁目标的关系的OID,如果目标既不是关系,也不是关系的一部分则此列为 NULL |
| page | int4 | 可空 | 作为锁目标的页在关系中的页号,如果目标不是一个关系页或元组则此列为 NULL |
| tuple | int2 | 可空 | 作为锁目标的元组在页中的元组号,如果目标不是一个元组则此列为 NULL |
| virtualxid | text | 可空 | 作为锁目标的事务的虚拟 ID,如果目标不是虚拟事务 ID,则为 NULL;见第 67 章 |
| transactionid | xid | 可空 | 作为锁目标的事务的 ID,如果目标不是事务 ID,则为 NULL;第 67 章 |
| classid | oid | 可空 | 包含锁目标的系统目录的OID,如果目标不是一个普通数据库对象则此列为 NULL |
| objid | oid | 可空 | 锁目标在它的系统目录中的OID,如果目标不是一个普通数据库对象则为 NULL |
| objsubid | int2 | 可空 | 锁的目标列号(classid和objid指表本身),如果目标是某种其他普通数据库对象则此列为0,如果目标不是一个普通数据库对象则此列为 NULL |
| virtualtransaction | text | 可空 | 持有这个锁或者正在等待这个锁的事务的虚拟ID |
| pid | int4 | 可空 | 持有这个锁或者正在等待这个锁的服务器进程的PID,如果此锁被一个预备事务所持有则此列为 NULL |
| mode | text | 可空 | 此进程已持有或者希望持有的锁模式的名称(参见第 13.3.1 节和第 13.2.3 节) |
| granted | bool | 可空 | 如果锁已授予则为真,如果锁被等待则为假 |
| fastpath | bool | 可空 | 如果锁通过快速路径获得则为真,通过主锁表获得则为假 |
| waitstart | timestamptz | 可空 | 服务器进程开始等待该锁的时间;如果锁已被授予则为 NULL。注意,在开始等待之后,即使granted为false,该值在极短时间内也可能仍为 NULL。 |
比较版本
来源引用
定义来源
center · PostgreSQL 18 · english-manuals:1a394737c3f59cb427706a23a53bb587470885cb6d5887f07ead65078241fc63
正文语言: zh-Hans · 2026-09-27@419045e