示例:标识 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 占有率最高的例程。