GaussDB-PG_LOCKS
PG_LOCKS视图显示各打开事务所持有的锁的信息。具体字段信息如表1所示。
| 名称 | 类型 | 引用 | 描述 |
|---|---|---|---|
| locktype | text | - | 被锁定对象的类型:relation、extend、page、tuple、transactionid、virtualxid、object、userlock或advisory。 |
| database | oid | PG_DATABASE.oid | 被锁定对象所在数据库的OID。- 如果被锁定的对象是共享对象,则OID为0。 |
- 如果被锁定的对象是一个事务,则OID为NULL。 | | relation | oid | PG_CLASS.oid | 关系的OID,如果锁定的对象不是关系,也不是关系的一部分,则为NULL。 | | page | integer | - | 关系内部的页面编号,如果对象不是关系页或者不是行页,则为NULL。 | | tuple | smallint | - | 页面里边的行编号,如果对象不是行,则为NULL。 | | bucket | integer | - | 哈希桶编号。 | | virtualxid | text | - | 虚拟事务的id,如果对象不是一个虚拟事务,则为NULL。 | | transactionid | xid | - | 事务的id,如果对象不是一个事务,则为NULL。 | | classid | oid | PG_CLASS.oid | 包含该对象的系统表的OID,如果对象不是普通的数据库对象,则为NULL。 | | objid | oid | - | 对象在其系统表内的OID,如果对象不是普通的数据库对象,则为NULL。 | | objsubid | smallint | - | 对于表的一个字段,这是字段编号;对于其他对象类型,这个字段是零;如果这个对象不是普通数据库对象,则为NULL。 | | virtualtransaction | text | - | 持有此锁或者在等待此锁的虚拟事务的虚拟id。 | | pid | bigint | - | 持有或者等待这个锁的服务器线程的逻辑id。如果锁是被一个预备事务持有的,则为NULL。 | | sessionid | bigint | - | 持有或者等待这个锁的会话的id。 | | mode | text | - | 这个线程持有的或者是期望的锁模式。取值为:AccessShareLock、RowShareLock、RowExclusiveLock、ShareLock、ShareRowExclusiveLock、ExclusiveLock或AccessExclusiveLock。 | | granted | boolean | - | - 如果锁是持有锁,则为TRUE。
- 如果锁是等待锁,则为FALSE。 | | fastpath | boolean | - | 如果通过fast-path获得锁,则为TRUE;如果通过主要的锁表获得,则为FALSE。 | | locktag | text | - | 会话等待锁信息,可通过locktag_decode()函数解析。 | | global_sessionid | text | - | 全局会话id。 |
更多详情请参考GaussDB 文档中心:doc.hcs.huawei.com/db/zh-cn/ga…