存取常规表中的事件监视数据

可使用 SQL 直接访问写至常规关系表的事件监视数据。

开始之前

访问数据之前,必须执行以下任务:
  • 创建和激活事件监视器
  • 如果必要,对您正在使用的事件监视器类型和您要收集的数据类型启用数据收集
  • 运行要对其收集监视数据的工作负载或应用程序

(可选)根据您使用该事件监视数据的方式,在开始检查事件数据之前取消激活数据收集。如果事件监视器仍处于活动状态,那么它会继续将数据写至输出表。因此,一个查询的结果可能不同于以后运行同一查询时获取的结果。

关于此任务

存取关系表中的事件监视数据包括使用 SQL 来构造查询以从该事件监视器生成的表中检索数据。

过程

要从写至表的事件监视器生成的表中检索信息,请执行以下操作:

  1. 构造 SELECT 语句以显示您要查看的监视元素数据。
    例如,要请求针对来自名为 mylocks 的锁定事件监视器的 payroll 工作负载数据的锁定,可使用类似如下的查询:
    SELECT DISTINCT CAST(STMT_TEXT AS VARCHAR(25)) STMT, LP.PARTICIPANT_NO, 
       VARCHAR(LP.APPL_NAME,10) APPL_NAME, LP.LOCK_MODE_REQUESTED,
         LP.PARTICIPANT_TYPE 
    FROM LOCK_PARTICIPANT_ACTIVITIES_LOCK_MYLOCKS AS LPA 
    JOIN LOCK_PARTICIPANTS_LOCK_MYLOCKS AS LP 
       ON LPA.EVENT_ID = LP.EVENT_ID  
       WHERE LP.WORKLOAD_NAME = 'PAYROLL'   
    在此示例中,来自事件监视器 mylocks 的 LOCK_PARTICIPANTS 表的数据与来自 LOCK_PARTICIPANTS_ACTIVITIES 表的信息连接到一起,从而返回以下结果。
  2. 运行此 SQL 语句。

结果

STMT                      PARTICIPANT_NO APPL_NAME  LOCK_WAIT_VAL       
------------------------- -------------- ---------- --------------------
select * from staff                    2 db2bp                         0
select * from staff                    1 db2bp                      1000

LOCK_MODE_REQUESTED  PARTICIPANT_TYPE
-------------------- ----------------
                   0 OWNER           
                   1 REQUESTER       


  2 record(s) selected.