可执行文件列表信息

收集工作单元信息时,您可选择同时收集作为每个工作单元的一部分运行的语句的可执行标识列表。

有关可执行标识的信息将写至无格式事件 (UE) 表或常规表。有两种方法可用来捕获此信息:
  • 对 CREATE WORKLOAD 或 ALTER WORKLOAD 语句的 COLLECT UNIT OF WORK DATA 子句使用 EXECUTABLE LIST 选项来收集特定工作负载的信息。有关您在语句中标识的工作负载下执行的工作单元的信息(包括可执行标识)将发送至处于活动状态的工作单元 (UOW) 事件监视器。
  • 使用配置参数将有关数据服务器上执行的所有工作单元的信息(包括可执行信息)发送至处于活动状态的工作单元事件监视器。要收集可执行标识信息,请将 mon_uow_data 配置参数设置为 BASE,并将 mon_uow_execlist 配置参数设置为 ON
针对可执行文件列表收集了以下数据:
工作单元级别
executable_list_size
特定工作单元的可执行标识列表中的条目数。
executable_list_truncated
YES 或 NO 值,用于指示该列表是否已截断。如果处理期间没有足够可用内存来存储整个可执行文件列表,那么该列表可能会被截断。
可执行标识列表
executable_id(executable_id -“可执行标识”监视元素
在数据服务器上生成的加密二进制标记,用于唯一地标识已执行的 SQL 语句节。
num_executions(num_executions -“语句执行次数”监视元素
已执行 SQL 语句的次数。
rows_read(rows_read -“读取行数”监视元素
从表中读取的行数。
total_cpu_time(total_cpu_time -“CPU 时间总计”监视元素
在数据库中耗用的 CPU 时间总计。此值表示用户 CPU 时间与系统 CPU 时间的总计。此值以微秒计。
total_act_time(total_act_time -“活动总时间”监视元素
执行活动时的耗用总时间。此值以毫秒计。
total_act_wait_time(total_act_wait_time -“活动等待总时间”监视元素
处理活动期间,在数据库服务器中等待时的总耗用时间。值以毫秒计。
lock_wait_time(lock_wait_time -“等待锁定时间”监视元素
等待锁定的耗用总时间。此值以毫秒计。
lock_waits(lock_waits -“等待锁定次数”监视元素
应用程序或连接等待锁定的总次数。
total_sorts(total_sorts -“排序总数”监视元素
已执行的排序总数。
post_threshold_sorts(post_threshold_sorts -“后阈值排序次数”监视元素
超过排序堆阈值后请求堆的排序数。
post_shrthreshold_sorts(post_shrthreshold_sorts -“后共享阈值排序数”监视元素
排序内存限量算法已限制的排序总数。受限排序是被授予内存量少于排序内存管理器所请求内存量的排序
sort_overflows(sort_overflows -“排序溢出次数”监视元素
用完排序堆并且可能需要磁盘空间以供临时存储器使用的排序总数。

执行列表如何写至 UE 表

收集 UOW 事件监视器的基本数据和可执行标识列表数据时,至少可将两个不同记录写至 UE 表。第一个记录包含有关包含基本 UOW 数据的 UOW 事件的信息。第二个记录是包含可执行标识列表数据的 UOW_EXEC_LIST 事件。第二个记录可能由多个记录组成,因为单个 UOW 可能有大量的唯一可执行标识。这些记录会作为不同行写至 UE 表以确保每个事件包含在直接插入的可用 LOB 空间中。可使用用于设置 UE 表格式的界面来合并这些事件的信息。如果未收集可执行标识列表,那么不会创建关联记录;该表不包含任何行。

执行列表如何写至常规表

将常规表用于事件监视器输出时,可执行列表信息作为uow_executable_list 逻辑数据组组的一部分捕获。每个工作单元完成时,会向表 UOW_EXECUTABLE_LIST_evmon_name 添加一行或多行,并为逻辑数据组中的每个监视元素添加一列。添加至该表的行数取决于有多少个唯一可执行标识作为该工作单元的一部分运行。

可执行列表输出

如果事件监视器写至 UE 表,那么收集执行信息时工作单元事件监视器会将两个记录写至 UE 表。用于显示 UE 表中的数据的每个界面提供了一种机制,以查看两个 UE 表记录中包含的信息。db2evmonfmt 工具将每个记录中的信息组合成单个报告。EVMON_FORMAT_UE_TO_TABLES 过程生成您可连接的关系表;表 UOW_EXECUTABLE_LIST 包含可执行列表信息。EVMON_FORMAT_UE_TO_XML 表函数会生成单个 XML 文档,该 XML 文档包含这两个记录中的信息。有关更多信息,请参阅访问工作单元事件监视器捕获的事件数据

如果该事件监视器直接将数据写至关系表,那么可执行列表信息会写至表 UOW_EXECUTABLE_LIST_evmon_name

在分区数据库环境中,将对每个成员(包括每个协调代理程序成员和数据成员)生成可执行标识列表。在 Db2® pureScale® 环境中,将根据协调程序成员生成该列表(这类似于非分区配置中的情况)。

示例

以下样本信息是针对执行 UOW 内的 5 个不同 SQL 语句节的应用程序收集的。此输出提供带有样本列的逻辑视图;实际输出取决于您运行的工具或查询。
EXECUTABLE_ID                          NUM_EXECUTIONS ROWS_READ TOTAL_CPU_TIME
------------------------------------   -------------- --------- --------------
x'01007A00000020020081126171554951791'              1     23456          76888
x'01007900000020020081126171533551120'             55       345            768
x'01007C00000020020081126171720728997'            234        67            232
x'01007B00000020020081126171657272914'           3456       347           1223
x'01007D00000020020081126172409987719'          22242      2244         432444
In this example, there are five entries in the executable ID list to correspond to the five different sections that were executed. The five sections were executed a different number of times, as illustrated by the NUM_EXECUTIONS column, but only one entry is provided for each unique section. The first row might indicate a problematic activity statement because it consumed excessive CPU time in just one execution.