PG_LOCKS
PG_LOCKS视图显示各打开事务所持有的锁的信息。在多租场景下,在PDB仅返回本PDB信息,在Non-PDB返回全局信息。
| 
       名称  | 
     
       类型  | 
     
       引用  | 
     
       描述  | 
    
|---|---|---|---|
| 
       locktype  | 
     
       text  | 
     
       -  | 
     
       被锁定对象的类型:relation、extend,page、tuple、transactionid、virtualxid、object、userlock、advisory或tablespace。  | 
    
| 
       database  | 
     
       oid  | 
     
       PG_DATABASE.oid  | 
     
       被锁定对象所在数据库的OID。 
  | 
    
| 
       relation  | 
     
       oid  | 
     
       PG_CLASS.oid  | 
     
       关系的OID,如果锁定的对象不是关系,也不是关系的一部分,则为NULL。  | 
    
| 
       page  | 
     
       integer  | 
     
       -  | 
     
       关系内部的页面编号,如果对象不是关系页或者不是行页,则为NULL。  | 
    
| 
       tuple  | 
     
       smallint  | 
     
       -  | 
     
       页面里边的行编号,如果对象不是行,则为NULL。  | 
    
| 
       bucket  | 
     
       integer  | 
     
       -  | 
     
       子表对应的bucket number。如果目标不是表的话,则为NULL。  | 
    
| 
       virtualxid  | 
     
       text  | 
     
       -  | 
     
       虚拟事务的ID,如果对象不是一个虚拟事务,则为NULL。  | 
    
| 
       transactionid  | 
     
       xid  | 
     
       -  | 
     
       事务的ID,如果对象不是一个事务,则为NULL。  | 
    
| 
       classid  | 
     
       oid  | 
     
       PG_CLASS.oid  | 
     
       包含该对象的系统表的OID,如果对象不是普通的数据库对象,则为NULL。  | 
    
| 
       objid  | 
     
       oid  | 
     
       -  | 
     
       对象在其系统表内的OID,如果对象不是普通的数据库对象,则为NULL。  | 
    
| 
       objsubid  | 
     
       smallint  | 
     
       -  | 
     
       对于表的一个字段,这是字段编号;对于其他对象类型,这个字段是0;如果这个对象不是普通数据库对象,则为NULL。  | 
    
| 
       virtualtransaction  | 
     
       text  | 
     
       -  | 
     
       持有此锁或者在等待此锁的虚拟事务的ID。  | 
    
| 
       pid  | 
     
       bigint  | 
     
       -  | 
     
       持有或者等待这个锁的服务器逻辑线程的ID。如果锁是被一个预备事务持有的,则为NULL。  | 
    
| 
       sessionid  | 
     
       bigint  | 
     
       -  | 
     
       持有或者等待这个锁的会话的ID。  | 
    
| 
       mode  | 
     
       text  | 
     
       -  | 
     
       这个线程持有的或者是期望的锁模式。 可能取值为:AccessShareLock、RowShareLock、RowExclusiveLock、ShareLock、ShareRowExclusiveLock、ExclusiveLock、AccessExclusiveLock。  | 
    
| 
       granted  | 
     
       boolean  | 
     
       -  | 
     
      
  | 
    
| 
       fastpath  | 
     
       boolean  | 
     
       -  | 
     
       如果通过fast-path获得锁,则为TRUE;如果通过主要的锁表获得,则为FALSE。  | 
    
| 
       locktag  | 
     
       text  | 
     
       -  | 
     
       会话等待锁信息,可通过locktag_decode()函数解析。  | 
    
| 
       global_sessionid  | 
     
       text  | 
     
       -  | 
     
       全局会话ID。  |