You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

寻求适用于DB2 z/OS的进程监控SQL查询方案

DB2 z/OS 活跃进程监控SQL查询语句

DB2 z/OS和LUW的系统监控视图差异很大,你之前用的sysibmadm.mon_current_sql和sysibmadm.long_running_sql只适用于LUW,下面是几个适用于DB2 z/OS监控活跃进程的常用SQL:

1. 监控当前活跃执行/等待的进程及语句

这个查询通过关联SYSIBM.SYSPROCESS(进程信息)和SYSIBM.SYSSTMT(当前执行语句),筛选出正处于执行或等待状态的进程,并按运行时长排序:

SELECT
  SUBSTR(P.PROCID, 1, 10) AS PROC_ID,
  SUBSTR(P.AUTHID, 1, 15) AS AUTH_ID,
  SUBSTR(P.PROGRAM, 1, 20) AS APPL_NAME,
  P.STATUS AS PROC_STATUS,
  TIMESTAMPDIFF(2, CHAR(CURRENT_TIMESTAMP - P.STARTDB2)) AS ELAPSED_MIN,
  SUBSTR(S.STMTTEXT, 1, 200) AS CURRENT_STMT
FROM
  SYSIBM.SYSPROCESS P
LEFT JOIN
  SYSIBM.SYSSTMT S ON P.PROCID = S.PROCID
WHERE
  P.STATUS IN ('EXECUTING', 'WAITING')
ORDER BY
  ELAPSED_MIN DESC
FETCH FIRST 5 ROWS ONLY;

字段说明:

  • PROC_ID:进程唯一标识
  • AUTH_ID:执行该进程的用户ID
  • APPL_NAME:发起进程的应用程序名
  • PROC_STATUS:进程状态(EXECUTING=执行中,WAITING=等待资源)
  • ELAPSED_MIN:进程已运行分钟数
  • CURRENT_STMT:当前正在执行的SQL语句片段(截取前200字符)

2. 监控长时间运行的活跃线程

如果需要重点关注运行时间较长的线程,可以用这个查询,关联SYSIBM.SYSTHREAD和SYSIBM.SYSSTMT:

SELECT
  SUBSTR(T.THREADID, 1, 12) AS THREAD_ID,
  SUBSTR(T.AUTHID, 1, 15) AS AUTH_ID,
  SUBSTR(T.PROGRAM, 1, 20) AS PROGRAM_NAME,
  T.STATUS AS THREAD_STATUS,
  TIMESTAMPDIFF(2, CHAR(CURRENT_TIMESTAMP - T.CREATION_TIME)) AS RUN_TIME_MIN,
  SUBSTR(S.STMTTEXT, 1, 200) AS EXECUTING_STMT
FROM
  SYSIBM.SYSTHREAD T
LEFT JOIN
  SYSIBM.SYSSTMT S ON T.THREADID = S.THREADID
WHERE
  T.STATUS = 'ACTIVE'
  AND TIMESTAMPDIFF(2, CHAR(CURRENT_TIMESTAMP - T.CREATION_TIME)) > 5 -- 筛选运行超5分钟的线程
ORDER BY
  RUN_TIME_MIN DESC;

注意事项

  • 执行这些查询需要拥有SYSIBM.SYSPROCESS、SYSIBM.SYSSTMT、SYSIBM.SYSTHREAD等系统表的SELECT权限
  • TIMESTAMPDIFF的第一个参数可调整:1=秒,2=分钟,3=小时,按需修改
  • SUBSTR的截取长度可以根据实际需求调整,避免截断关键语句信息

内容的提问来源于stack exchange,提问作者Dragan Ognjenović

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 05:05:10