MON_GET_SERVICE_SUBCLASS_STATS 表函数 - 返回服务子类的统计信息

MON_GET_SERVICE_SUBCLASS_STATS 函数返回一个或多个服务子类的基本统计信息。

权限

需要下列其中一个权限:
  • 对例程的 EXECUTE 特权
  • DATAACCESS 权限
  • DBADM 权限
  • SQLADM 权限
  • WLMADM 权限

缺省 PUBLIC 特权

语法

Read syntax diagramSkip visual syntax diagramMON_GET_SERVICE_SUBCLASS_STATS(service_superclass_name ,service_subclass_name,member )

模式为 SYSPROC。

例程参数

service_superclass_name
类型为 VARCHAR(128) 的输入参数,用于指定当前连接的数据库中服务超类的名称。 如果参数为空或空字符串,那么将为数据库中的所有超类检索数据。
service_subclass_name
类型为 VARCHAR(128) 的输入参数,用于指定当前连接的数据库中服务子类的名称。 如果参数为空或空字符串,那么将为数据库中的所有子类检索数据。
成员
类型为 INTEGER 的输入参数,该参数指定与当前所连接数据库在同一实例中的成员的有效编号。 为当前成员指定 -1,对所有活动数据库成员指定 -2。 如果指定空值,那么会隐式设置 -1。

返回的信息

表 1. MON_GET_SERVICE_SUBCLASS_STATS 例程返回的信息
列名 数据类型 描述
SERVICE_SUPERCLASS_NAME VARCHAR(128) service_superclass_name -“服务超类名”监视元素
SERVICE_SUBCLASS_NAME VARCHAR(128) service_subclass_name -“服务子类名”监视元素
DBPARTITIONNUM SMALLINT dbpartitionnum -“数据库分区号”监视元素
LAST_RESET TIMESTAMP last_reset -“最后重置时间戳记”监视元素
COORD_ACT_COMPLETED_TOTAL BIGINT coord_act_completed_total -“完成的协调程序活动总数”监视元素
COORD_ACT_ABORTED_TOTAL BIGINT coord_act_aborted_total -“异常终止的协调程序活动总数”监视元素
COORD_ACT_REJECTED_TOTAL BIGINT coord_act_rejected_total -“被拒绝的协调程序活动总数”监视元素
CONCURRENT_ACT_TOP INTEGER concurrent_act_top -“最大并行活动数”监视元素
COORD_ACT_LIFETIME_TOP BIGINT coord_act_lifetime_top -“协调程序活动生存期顶部”监视元素
COORD_ACT_LIFETIME_AVG coord_act_lifetime_avg -“平均协调程序活动生存期”监视元素
COORD_ACT_LIFETIME_STDDEV 自上次复位以来,与此服务子类相关联的嵌套级别 0 的协调程序活动生存期的标准偏差。 如果服务类的 COLLECT AGGREGATE ACTIVITY DATA 参数设置为 NONE,那么此列的值为空。 单位为毫秒。

此标准偏差是从协调程序活动生存期直方图计算得出的,如果未正确调整直方图的大小以适合数据,那么该标准偏差可能不准确。 如果有任何值落入最后一个直方图 bin 中,那么返回值 -1。

服务子类的 COORD_ACT_LIFETIME_STDDEV 值不受符合下列条件的活动影响:通过该服务子类,但是在它们完成之前重新映射到另一子类。

COORD_ACT_EXEC_TIME_AVG coord_act_exec_time_avg -“平均协调程序活动执行时间”监视元素
COORD_ACT_EXEC_TIME_STDDEV 自上次复位以来,与此服务子类相关联的嵌套级别 0 的协调程序活动执行时间的标准偏差。 单位为毫秒。

此标准偏差是从协调程序活动执行时间直方图计算得出的,如果未正确调整直方图的大小以适合数据,那么该标准偏差可能不准确。 如果有任何值落入最后一个直方图 bin 中,那么返回值 -1。

服务子类的执行时间标准偏差不受符合下列条件的活动影响:通过该子类,但是在它们完成之前重新映射到另一子类。

COORD_ACT_QUEUE_TIME_AVG coord_act_queue_time_avg -“平均协调程序活动队列时间”监视元素
COORD_ACT_QUEUE_TIME_STDDEV 自上次复位以来,与此服务子类相关联的嵌套级别 0 的协调程序活动的队列时间的标准偏差。 如果服务类的 COLLECT AGGREGATE ACTIVITY DATA 参数设置为 NONE,那么此列的值为空。 单位为毫秒。

此标准偏差是从协调程序活动队列时间直方图计算得出的,如果未正确调整直方图的大小以适合数据,那么该标准偏差可能不准确。 如果有任何值落入最后一个直方图 bin 中,那么返回值 -1。

排队时间标准偏差只计入该活动已在其中排队的服务子类。

NUM_REQUESTS_ACTIVE BIGINT 在此表函数运行时在服务子类中运行的请求数。
NUM_REQUESTS_TOTAL BIGINT 自上次复位以来在此服务子类中完成运行的请求数。 此完成状态适用于任何请求,而不考虑其在活动中的成员资格。 如果服务类的 COLLECT AGGREGATE ACTIVITY DATA 参数设置为 NONE,那么此列的值为空。

服务子类的 NUM_REQUESTS_TOTAL 值不受通过服务子类但未在其中完成的请求影响。

REQUEST_EXEC_TIME_AVG request_exec_time_avg -“平均请求执行时间”监视元素
REQUEST_EXEC_TIME_STDDEV 自上次复位以来与此服务子类相关联的请求的执行时间的标准偏差。 单位为毫秒。 如果服务类的 COLLECT AGGREGATE REQUEST DATA 参数设置为 NONE,那么此列的值为 NULL。

此标准偏差是从请求执行时间直方图计算得出的,如果未正确调整直方图的大小以适合数据,那么该标准偏差可能不准确。 如果有任何值落入最后一个直方图 bin 中,那么返回值 -1。

服务子类的执行时间标准偏差不受通过子类但未在其中完成的请求影响。

REQUEST_EXEC_TIME_TOTAL BIGINT 自上次复位以来与此服务子类相关联的请求的执行时间总和。 单位为毫秒。 如果服务类的 COLLECT AGGREGATE REQUEST DATA 参数设置为 NONE,那么此列的值为 NULL。

此总数是从请求执行时间直方图计算得出的,如果未正确调整直方图的大小以适合数据,那么该总数可能不准确。 如果有任何值落入最后一个直方图 bin 中,那么返回值 -1。

服务子类的总执行时间不受通过子类但未在其中完成的请求影响。

ACT_REMAPPED_IN BIGINT act_remapped_in -“重新映入的活动数”监视元素
ACT_REMAPPED_OUT BIGINT act_remapped_out -“重新映出的活动数”监视元素
CONCURRENT_WLO_TOP INTEGER concurrent_wlo_top -“最大并行工作负载项数”监视元素
UOW_TOTAL_TIME_TOP BIGINT uow_total_time_top -“最长 UOW 总时间”监视元素
UOW_THROUGHPUT uow_throughput -“工作单元吞吐量”监视元素

自上次重置统计信息以来的工作单元吞吐量。

UOW_LIFETIME_AVG uow_lifetime_avg -“工作单元平均生存期”监视元素
UOW_COMPLETED_TOTAL BIGINT uow_completed_total -“完成的工作单元总数”监视元素
TOTAL_CPU_TIME BIGINT total_cpu_time -“CPU 总时间”监视元素
TOTAL_DISP_RUN_QUEUE_TIME BIGINT total_disp_run_queue_time -“分派器运行队列总时间”监视元素
ACT_THROUGHPUT act_throughput -“活动吞吐量”监视元素
CPU_UTILIZATION cpu_utilization -“CPU 利用率”监视元素
APP_ACT_COMPLETED_TOTAL BIGINT app_act_completed_total -“成功的外部协调程序活动总数”监视元素
APP_ACT_ABORTED_TOTAL BIGINT app_act_aborted_total -“失败的外部协调程序活动总数”监视元素
APP_ACT_REJECTED_TOTAL BIGINT app_act_rejected_total -“拒绝的外部协调程序活动总数”监视元素
MEMBER SMALLINT member -“数据库成员”监视元素
ACTIVE_HASH_GRPBYS_TOP BIGINT active_hash_grpbys_top - 活动散列 GROUP BY 操作次数高水位标记
ACTIVE_HASH_JOINS_TOP BIGINT active_hash_joins_top-活动散列连接操作数高水位标记
ACTIVE_OLAP_FUNCS_TOP BIGINT active_olap_funcs_top-活动 OLAP 函数操作高水位标记
ACTIVE_PEAS_TOP BIGINT active_广大-top-活动部分提前聚集操作次数高水位标记
ACTIVE_PEDS_TOP BIGINT active_peds_top - 活动部分提前相异操作次数高水位标记
ACTIVE_SORT_CONSUMERS_TOP BIGINT active_sort_consumers_top - 活动排序使用者数高水位标记
ACTIVE_SORTS_TOP BIGINT active_sorts_top - 活动排序数高水位标记
ACTIVE_COL_VECTOR_CONSUMERS_TOP BIGINT active_col_vector_consumers_top-活动 columnar_vector 使用者高水位标记
SORT_CONSUMER_HEAP_TOP BIGINT sort_consumer_heap_top - 单个专用排序堆使用者高水位标记
SORT_CONSUMER_SHRHEAP_TOP BIGINT sort_consumer_shrheap_top - 单个共享排序堆使用者高水位标记
SORT_HEAP_TOP BIGINT sort_heap_top - 排序专用堆高水位标记
SORT_SHRHEAP_TOP BIGINT sort_shrheap_top - 共享排序堆高水位标记

使用说明

仅当您将相应服务子类的 COLLECT AGGREGATE ACTIVITY DATA 和 COLLECT AGGREGATE REQUEST DATA 参数设置为 NONE 以外的值时,才会返回某些统计信息。

MON_GET_SERVICE_SUBCLASS_STATS 表函数将返回每个服务子类和每个成员的一行数据。 此函数不会聚集跨服务类(在分区上)或跨分区(对于一个或多个服务类)的数据。 但是,您可以使用 SQL 查询来聚集数据。

这些参数是相互结合评估的。 如果指定了冲突的输入参数,那么不会返回任何行。 例如,如果指定名为 SUPA 的超类和名为 SUBB 的子类(其中 SUBB 不是 SUPA 的子类),那么不会返回任何行。

示例

示例 1:因为每个活动在运行前都必须映射到数据库服务类,所以您可以使用服务类统计信息表函数并查询所有成员上的所有服务类来监视系统的全局状态。 在以下示例中,将为 service_superclass_nameservice_subclass_name 传递空值以返回所有服务类的统计信息,并为成员指定值 -2 以返回所有成员的统计信息:
 SELECT SUBSTR(SERVICE_SUPERCLASS_NAME,1,19) AS SUPERCLASS_NAME,
       SUBSTR(SERVICE_SUBCLASS_NAME,1,18) AS SUBCLASS_NAME,
       SUBSTR(CHAR(MEMBER),1,4) AS MEMB,
       CAST(COORD_ACT_LIFETIME_AVG / 1000 AS DECIMAL(9,3))
         AS AVGLIFETIME,
       CAST(COORD_ACT_LIFETIME_STDDEV / 1000 AS DECIMAL(9,3))
         AS STDDEVLIFETIME,
       SUBSTR(CAST(LAST_RESET AS VARCHAR(30)),1,16) AS LAST_RESET
  FROM TABLE(MON_GET_SERVICE_SUBCLASS_STATS(CAST(NULL AS VARCHAR(128)),
       CAST(NULL AS VARCHAR(128)), -2)) AS SCSTATS
  ORDER BY SUPERCLASS_NAME, SUBCLASS_NAME, MEMB
该语句返回服务类统计信息,例如,平均活动生存期和标准偏差(以秒计),如以下样本输出所示:
SUPERCLASS_NAME     SUBCLASS_NAME      MEMB ...
------------------- ------------------ ---- ...
SYSDEFAULTUSERCLASS SYSDEFAULTSUBCLASS 0    ...
SYSDEFAULTUSERCLASS SYSDEFAULTSUBCLASS 1    ...
SYSDEFAULTUSERCLASS SYSDEFAULTSUBCLASS 2    ...
SYSDEFAULTUSERCLASS SYSDEFAULTSUBCLASS 3    ...
... AVGLIFETIME STDDEVLIFETIME LAST_RESET
... ----------- -------------- ----------------
...     691.242         34.322 2006-07-24-11.44
...     644.740         22.124 2006-07-24-11.44
...     612.431         43.347 2006-07-24-11.44
...     593.451         28.329 2006-07-24-11.44
示例 2:同一表函数还可以为每个成员上服务类中运行的协调程序活动的平均并行度提供最高值:
  SELECT SUBSTR(SERVICE_SUPERCLASS_NAME,1,19) AS SUPERCLASS_NAME,
         SUBSTR(SERVICE_SUBCLASS_NAME,1,18) AS SUBCLASS_NAME,
         SUBSTR(CHAR(MEMBER),1,4) AS MEMB,
         CONCURRENT_ACT_TOP AS ACTTOP,
         CONCURRENT_WLO_TOP AS CONNTOP
  FROM TABLE(MON_GET_SERVICE_SUBCLASS_STATS(CAST(NULL AS VARCHAR(128)),
         CAST(NULL AS VARCHAR(128)), -2)) AS SCSTATS
  ORDER BY SUPERCLASS_NAME, SUBCLASS_NAME, MEMB
样本输出如下所示:
SUPERCLASS_NAME     SUBCLASS_NAME      MEMB ACTTOP    CONNTOP
------------------- ------------------ ---- --------- ---------
SYSDEFAULTUSERCLASS SYSDEFAULTSUBCLASS 0           10         7
SYSDEFAULTUSERCLASS SYSDEFAULTSUBCLASS 1            0         0
SYSDEFAULTUSERCLASS SYSDEFAULTSUBCLASS 2            0         0
SYSDEFAULTUSERCLASS SYSDEFAULTSUBCLASS 3            0         0

通过检查此表函数的输出中的平均执行时间和活动数,您可以获取对特定数据库的每个成员的负载的良好高级视图。 此表函数返回的高级别标尺中的任何明显变化都可能指示系统上的负载发生了变化。

示例 3:如果活动使用带有 REMAP ACTIVITY TO 操作的阈值,那么该活动在其生存期内可能会在多个服务类中花费时间。 您可以通过查看 ACT_REMAPPED_IN 和 ACT_REMAPPED_OUT 列来确定通过一组服务类传递的活动数,如以下示例所示:
SELECT SUBSTR(SERVICE_SUPERCLASS_NAME,1,19) AS SUPERCLASS_NAME,
       SUBSTR(SERVICE_SUBCLASS_NAME,1,18) AS SUBCLASS_NAME,
       ACT_REMAPPED_IN AS MAPPED_IN,
       ACT_REMAPPED_OUT AS MAPPED_OUT
FROM TABLE(MON_GET_SERVICE_SUBCLASS_STATS(CAST(NULL AS VARCHAR(128)),
       CAST(NULL AS VARCHAR(128)), -2)) AS SCSTATS
ORDER BY SUPERCLASS_NAME, SUBCLASS_NAME
样本输出如下所示:
SUPERCLASS_NAME     SUBCLASS_NAME      MAPPED_IN MAPPED_OUT
------------------- ------------------ --------- ----------
SYSDEFAULTUSERCLASS SYSDEFAULTSUBCLASS         0          0
SUPERCLASS1         SYSDEFAULTSUBCLASS         0          0
SUPERCLASS1         SUBCLASS1                  0          7
SUPERCLASS1         SUBCLASS2                  7          0