示例:列出匿名块的聚集例程指标
可以使用例程监视功能来列出匿名块所执行语句的聚集指标。
方案
在本示例中,数据库管理员 (DBA) 想要查看含有语句文本“BEGIN ... END”的匿名块所执行的所有语句的聚集指标。DBA 发出下列查询,在程序包高速缓存中查找匿名块的 executable_id:SELECT EXECUTABLE_ID
FROM TABLE(MON_GET_PKG_CACHE_STMT(NULL, NULL,NULL,-1)) AS T
WHERE STMT_TEXT = 'BEGIN BLAH BLAH END'返回的结果是:EXECUTABLE_ID
-------------------------------------------------------------------
x'01000000000000007A0000000000000000000000020020120801153841789993'
1 record(s) selected.使用返回的 executable_id,DBA 发出下列查询以查找匿名块的聚集指标:
SELECT * FROM TABLE(MON_GET_ROUTINE('A', NULL,NULL,NULL,-2)) AS T
WHERE DYN_COMPOUND_EXEC_ID = x'01000000000000007A0000000000000000000000020020120801153841789993'返回的结果是:ROUTINETYPE ROUTINESCHEMA ROUTINEMODULENAME ROUTINENAME SPECIFICNAME DYN_COMPOUND_EXEC_ID
----------- --------------- ------------------ --------------------------- -------------------- -------------------------------------------------------------------
C SYSIBMINTERNAL - COMPILED_ANON_BLOCK_INVOKE SQL120801153841490 x'01000000000000007A0000000000000000000000020020120801153841789993'
1 record(s) selected.此外,DBA 可以使用 MON_GET_SECTION_ROUTINE 表函数来查找对应于匿名块的内部过程和模式名,然后将那些值作为输入传递至 MON_GET_ROUTINE 表函数。此方法将仅返回匿名块的信息,因此避免使用 WHERE 子句来过滤输出。