Example: Analyzing workloads by activity type
You can use Db2® workload management table functions to examine the workloads in your environment according to the types of activities being run.
In some situations, you might be interested in the behavior of
a certain type of activities, such as LOAD activities. For example,
you can observe how many LOAD activities are currently in the system
as follows:
SELECT COUNT(*)
FROM TABLE(WLM_GET_WORKLOAD_OCCURRENCE_ACTIVITIES(CAST(NULL AS BIGINT), -2))
AS ACTS
WHERE ACTIVITY_TYPE = 'LOAD'
You can obtain a count of how many activities of a specific type have been submitted since the
last reset of the Db2 workload management
statistics by using the WLM_GET_WORK_ACTION_SET_STATS table function, as shown in the following
example. Assume that the READCLASS and LOADCLASS work classes exist for activities of type READ and
activities of type LOAD. The * represents all activities that do not fall
into the READCLASS or LOADCLASS work class.
SELECT SUBSTR(WORK_ACTION_SET_NAME,1,18) AS WORK_ACTION_SET_NAME,
SUBSTR(CHAR(DBPARTITIONNUM),1,4) AS PART,
SUBSTR(WORK_CLASS_NAME,1,15) AS WORK_CLASS_NAME,
LAST_RESET,
SUBSTR(CHAR(ACT_TOTAL),1,14) AS TOTAL_ACTS
FROM TABLE(WLM_GET_WORK_ACTION_SET_STATS('', -2)) AS WASSTATS
ORDER BY WORK_ACTION_SET_NAME, WORK_CLASS_NAME, PART
WORK_ACTION_SET_NAME PART WORK_CLASS_NAME LAST_RESET TOTAL_ACTS
-------------------- ---- --------------- -------------------------- ----------
AdminActionSet 0 ReadClass 2005-11-25-18.52.49.343000 8
AdminActionSet 1 ReadClass 2005-11-25-18.52.50.478000 0
AdminActionSet 0 LoadClass 2005-11-25-18.52.49.343000 2
AdminActionSet 1 LoadClass 2005-11-25-18.52.50.478000 0
AdminActionSet 0 * 2005-11-25-18.52.50.478000 0
AdminActionSet 1 * 2005-11-25-18.52.50.478000 0
You can view the average lifetime of
LOAD activities by creating a work action set to map LOAD activities
to a specific service subclass. For example, suppose you map LOAD
activities to the service subclass LOADSERVICECLASS under the service
superclass MYSUPERCLASS. Then, you can query the WLM_GET_SERVICE_SUBCLASS_STATS
table function:
SELECT SUBSTR(SERVICE_SUPERCLASS_NAME,1,19) AS SUPERCLASS_NAME,
SUBSTR(SERVICE_SUBCLASS_NAME,1,18) AS SUBCLASS_NAME,
SUBSTR(CHAR(DBPARTITIONNUM),1,4) AS PART,
CAST(COORD_ACT_LIFETIME_AVG / 1000 AS DECIMAL(9,3)) AS AVGLIFETIME
FROM TABLE
(WLM_GET_SERVICE_SUBCLASS_STATS('MYSUPERCLASS', 'LOADSERVICECLASS', -2))
AS SCSTATS
ORDER BY SUPERCLASS_NAME, SUBCLASS_NAME, PART
SUPERCLASS_NAME SUBCLASS_NAME PART AVGLIFETIME
------------------- ------------------ ---- ----------------------
SYSDEFAULTUSERCLASS LOADSERVICECLASS 0 4691.242
SYSDEFAULTUSERCLASS LOADSERVICECLASS 1 4644.740
SYSDEFAULTUSERCLASS LOADSERVICECLASS 2 4612.431
SYSDEFAULTUSERCLASS LOADSERVICECLASS 3 4593.451