LOCKS_挂起管理视图-检索有关挂起的锁定的信息

LOCKS_挂起的管理视图返回有关当前挂起的锁定的信息。

模式为 SYSIBMADM。

权限

需要下列其中一个权限:
  • LOCKS_挂起的管理视图上的 SELECT 特权
  • LOCKS_挂起的管理视图上的 CONTROL 特权
  • DATAACCESS 权限
此外,要访问快照监视器数据,还需要下列其中一个权限:
  • SYSMON
  • SYSCTRL
  • SYSMAINT
  • SYSADM

缺省 PUBLIC 特权

在非限制性数据库中,当自动创建视图时,将向 PUBLIC 授予 SELECT 特权。

示例

示例 1: 列出数据库 SAMPLE 中每个表持有的锁定总数。
SELECT TABSCHEMA, TABNAME, COUNT(*) AS NUMBER_OF_LOCKS_HELD 
   FROM SYSIBMADM.LOCKS_HELD WHERE DB_NAME = 'SAMPLE' 
   GROUP BY DBPARTITIONNUM, TABSCHEMA, TABNAME
以下是此查询的输出示例。
TABSCHEMA      TABNAME       NUMBER_OF_LOCKS_HELD
----------...- ---------...- --------------------
JESSICAE       EMPLOYEE                         5
JESSICAE       EMP_RESUME                       1
JESSICAE       ORG                              3
示例 2: 列出当前连接的数据库 SAMPLE 中未升级的所有锁定。
SELECT AGENT_ID, TABSCHEMA, TABNAME, LOCK_OBJECT_TYPE, LOCK_MODE, 
   LOCK_STATUS FROM SYSIBMADM.LOCKS_HELD WHERE LOCK_ESCALATION = 0 
   AND DBPARTITIONNUM = 0
以下是此查询的输出示例。
AGENT_ID     TABSCHEMA     TABNAME      LOCK_OBJECT_TYPE   LOCK_MODE  LOCK_STATUS
--------...- ---------...- --------...- ------------------ ---------- -----------
         680 JESSICAE      EMPLOYEE     INTERNALV_LOCK     S          GRNT
         680 JESSICAE      EMPLOYEE     INTERNALP_LOCK     S          GRNT
示例 3: 列出代理程序标识为 310 的应用程序当前持有的锁定的锁定信息。
SELECT TABSCHEMA, TABNAME, LOCK_OBJECT_TYPE, LOCK_MODE, LOCK_STATUS, 
   LOCK_ESCALATION FROM SYSIBMADM.LOCKS_HELD WHERE AGENT_ID = 310
以下是此查询的输出示例。
TABSCHEMA     TABNAME      LOCK_OBJECT_TYPE   LOCK_MODE  LOCK_STATUS
---------...- --------...- ------------------ ---------- -----------
JESSICAE      EMP_RESUME   TABLE_LOCK         S          GRNT
JESSICAE      EMPLOYEE     ROW_LOCK           S          GRNT 

返回的信息

表 1. LOCKS_挂起的管理视图返回的信息
列名 数据类型 描述或相应的监视元素
snapshot_timestamp TIMESTAMP 生成报告的日期和时间。
DB_NAME VARCHAR(128) db_name - 数据库名称
AGENT_ID BIGINT agent_id - 应用程序句柄(代理程序标识)
APPL_NAME VARCHAR(256) appl_name - 应用程序名称
AUTHID VARCHAR(128) auth_id - 授权标识
tbsp_name VARCHAR(128) tablespace_name - 表空间名称
TABSCHEMA VARCHAR(128) table_schema - 表模式名
TABNAME VARCHAR(128) table_name - 表名
tab_file_id BIGINT table_file_id - 表文件标识
LOCK_OBJECT_TYPE VARCHAR(18) lock_object_type-等待的锁定对象类型 。 此接口根据 sqlmon.h 中的定义返回文本标识,并且是下列其中一项:
  • AUTORESIZE_LOCK
  • AUTOSTORAGE_LOCK
  • BLOCK_LOCK
  • EOT_LOCK
  • INPLACE_REORG_LOCK
  • INTERNAL_LOCK
  • INTERNALB_LOCK
  • INTERNALC_LOCK
  • INTERNALJ_LOCK
  • INTERNALL_LOCK
  • INTERNALO_LOCK
  • INTERNALQ_LOCK
  • INTERNALP_LOCK
  • INTERNALS_LOCK
  • INTERNALT_LOCK
  • INTERNALV_LOCK
  • KEYVALUE_LOCK
  • ROW_LOCK
  • SYSBOOT_LOCK
  • TABLE_LOCK
  • TABLE_PART_LOCK
  • TABLESPACE_LOCK
  • XML_PATH_LOCK
  • COL_TABLE_SERIALIZE_LOCK
LOCK_NAME VARCHAR(32) lock_name - 锁定名称
LOCK_MODE VARCHAR(10) lock_mode-锁定方式 。 此接口根据 sqlmon.h 中的定义返回文本标识,并且是下列其中一项:
  • IN
  • IS
  • IX
  • NON(如果没有锁定)
  • NS
  • NW
  • S
  • SIX
  • U
  • X
  • Z
LOCK_STATUS VARCHAR(10) lock_status-锁定状态 。 此接口根据 sqlmon.h 中的定义返回文本标识,并且是下列其中一项:
  • CONV
  • GRNT
LOCK_ESCALATION SMALLINT lock_escalation - 锁定升级
DBPARTITIONNUM SMALLINT dbpartitionnum -“数据库分区号”监视元素
MEMBER SMALLINT member -“数据库成员”监视元素