标识语句对数据库对象的影响

使用包括部分实际值信息的段说明来标识语句对数据库对象的影响。 可使用有关语句段对每个表或索引的影响的统计信息来确定是否需要其他监视或调整。

准备工作

执行以下任务:

  • 标识要查看其对象用法统计信息的语句。
  • 确保您已将说明表迁移至数据库系统。
  • 确保未启用自动统计信息概要文件生成。
  • 确保您具有调用 EXPLAIN_FROM_ACTIVITY 过程所需的特权。

关于本任务

标识要查看其对象用法统计信息的语句后,可获取包括段实际值信息的段说明。 段实际值信息指示此语句对执行它时它使用的每个表或索引的影响。

实际值信息包括每个表或索引的锁定和缓冲池使用情况之类的因素的运行时统计信息。 可将这些统计信息与基线数据进行比较并使用它们来确定可能需要其他监视或调整的位置。

过程

要确定语句对数据库对象的影响,请执行以下操作:

  1. 通过发出以下命令在数据库级别启用段实际值收集:
    DB2 UPDATE DATABASE CONFIGURATION USING SECTION_ACTUALS BASE
  2. 创建工作负载以收集以下活动的段实际值信息:这些活动由发出此语句的应用程序提交。
    例如,要为 TEST 应用程序提交的活动创建 ACTWORKLOAD 工作负载并启用对这些活动的收集,请发出以下命令:
    CREATE WORKLOAD ACTWORKLOAD APPLNAME ('TEST')
    COLLECT ACTIVITY DATA ON ALL WITH DETAILS,SECTION INCLUDE ACTUALS BASE
    还可通过以下方式来启用对部分实际值的收集:
    • CREATE SERVICE CLASS 或 ALTER SERVICE CLASS 语句
    • CREATE WORK ACTION SET 或 ALTER WORK ACTION SET 语句
    • WLM_SET_CONN_ENV 过程
    • section_actuals 配置参数
  3. 通过使用 CREATE EVENT MONITOR 语句来创建活动事件监视器。
    例如,要创建 ACTEVMON 活动事件监视器,请发出以下命令:
    CREATE EVENT MONITOR ACTEVMON
           FOR ACTIVITIES
           WRITE TO TABLE
           CONTROL (TABLE CONTROL_ACTEVMON ),
           ACTIVITY (TABLE ACTIVITY_ACTEVMON ),
           ACTIVITYSTMT (TABLE ACTIVITYSTMT_ACTEVMON ),
           ACTIVITYVALS (TABLE ACTIVITYVALS_ACTEVMON ),
           ACTIVITYMETRICS (TABLE ACTIVITYMETRICS_ACTEVMON )
  4. 通过使用 SET EVENT MONITOR STATE 语句来激活您所创建的活动事件监视器。
    例如,要激活 ACTEVMON 活动事件监视器,请发出以下命令:
    SET EVENT MONITOR ACTEVMON STATE 1
  5. 运行发出以下语句的应用程序:您想要查看此语句的对象统计信息。
  6. 通过使用以下命令来查找语句段的标识信息,以查询活动事件监视器表:
    SELECT APPL_ID,
           UOW_ID,
           ACTIVITY_ID,
           STMT_TEXT
    FROM ACTIVITYSTMT_ACTEVMON
  7. 通过使用活动标识信息作为 EXPLAIN_FROM_ACTIVITY 过程的输入来获取带有实际值的段说明。
    例如,要获取应用程序标识为 *N2.DB2INST1.0B5A12222841 工作单元标识为 16 并且活动标识为 4 的段的段说明,请发出以下命令:
    CALL EXPLAIN_FROM_ACTIVITY( '*N2.DB2INST1.0B5A12222841', 16, 4, 'ACTEVMON',
     'MYSCHEMA', ?, ?, ?, ?, ? )
    您将获得类似如下样本输出的输出:
    Value of output parameters
    --------------------------
    Parameter Name : EXPLAIN_SCHEMA
    Parameter Value : MYSCHEMA
    
    Parameter Name : EXPLAIN_REQUESTER
    Parameter Value : GSDBUSER3 
    
    Parameter Name : EXPLAIN_TIME
    Parameter Value : 2010-11-23-10.51.09.631945
    
    Parameter Name : SOURCE_NAME
    Parameter Value : SQLC2J21
    
    Parameter Name : SOURCE_SCHEMA
    Parameter Value : NULLID 
    
    Parameter Name : SOURCE_VERSION
    Parameter Value : 
    
    Return Status = 0
  8. 使用 db2exfmt 命令格式化说明数据。
    使用 EXPLAIN_FROM_ACTIVITY 过程输出中的 explain_requesterexplain_timesource_namesource_schemasource_version 参数的值作为此命令的输入。
  9. 查看说明输出以确定此段对执行此段时此段使用的数据库对象的影响。
    输出中的统计信息可能指示需要其他监视或调整。
    例如,如果此段使用的表的 lock_wait 监视元素值很高,那么可能需要锁定管理。
  10. 如果调整语句,请重复步骤 59 以验证性能是否有所提高。

下一步要执行的操作

通过使用 SET EVENT MONITOR STATE 语句来取消激活活动事件监视器。 例如,要取消激活 ACTEVMON 活动事件监视器,请发出以下命令:
SET EVENT MONITOR ACTEVMON STATE 0