示例:标识 CPU 占用率的最昂贵例程

可以使用例程监视功能来标识最昂贵的例程。

方案

在本示例中,数据库管理员 (DBA) 想要标识总 CPU 占有率最大的数据库例程。DBA 发出下列查询来显示所有从数据激活以来执行的例程:
SELECT ROUTINESCHEMA, ROUTINEMODULENAME, ROUTINENAME,
   SPECIFICNAME, SUM(TOTAL_CPU_TIME) AS TOTAL_CPU
FROM TABLE(MON_GET_ROUTINE(NULL,NULL,NULL,NULL,-2)) AS T
GROUP BY ROUTINESCHEMA, ROUTINEMODULENAME, ROUTINENAME, SPECIFICNAME
ORDER BY TOTAL_CPU DESC
结果按例程的总 CPU 占用率来排序。
ROUTINESCHEMA     ROUTINEMODULENAME  ROUTINENAME                 SPECIFICNAME        TOTAL_CPU
----------------- ------------------ --------------------------- ------------------- --------------------
SYSIBMINTERNAL    -                  COMPILED_ANON_BLOCK_INVOKE  SQL120801135416210               8942414
DRICARD           -                  PROC1                       PROC1                              23444
SYSIBMSUBROUTINE  -                  PROC1_66613_101877843       -                                   4213
DRICARD           -                  MYPROC                      SQL120801135351900                  1838
DRICARD           -                  TRIG1                       SQL120801135519200                   467

  5 record(s) selected.

DBA 现在可以将调整工作集中在总 CPU 占有率最高的例程。