我正在运行一个db2查询,它将两个非常大的表联合起来。我在10小时前开始查询,但它似乎还没有结束。
但是,当我使用top
检查流程状态时,会显示状态为' S'。这是否意味着我的查询停止运行?但我无法找到任何错误信息。
如何查看查询的内容?
答案 0 :(得分:2)
在DB2 for LUW 11.1中,有一个基于文本的dsmtop
utility,它允许您实时监视DB2实例,直到单个执行语句。它是11.1之前的等价物称为db2top
。
还有一个基于Web的应用程序IBM Data Server Manager,它有一个带有基本监控功能的免费版。
最后,您可以查询提供的SQL监视器接口之一,例如SYSIBMADM.MON_CURRENT_SQL
视图:
SELECT session_auth_id,
application_handle,
elapsed_time_sec,
activity_state,
rows_read,
SUBSTR(stmt_text,1,200)
FROM sysibmadm.mon_current_sql
ORDER BY elapsed_time_sec DESC
FETCH FIRST 5 ROWS ONLY
答案 1 :(得分:0)
您也可以尝试使用此命令
db2 "SELECT agent_id,
Substr(appl_name, 1, 20) AS APPLNAME,
elapsed_time_min,
Substr(authid, 1, 10) AS AUTH_ID,
agent_id,
appl_status,
Substr(stmt_text, 1, 30) AS STATEMENT
FROM sysibmadm.long_running_sql
WHERE elapsed_time_min > 0
ORDER BY elapsed_time_min desc
FETCH first 5 ROWS only"