DB2中监控Cognos对应SQL的两个办法

浏览: 3081

1. 通过ACTIVITY_DB2ACTIVITIES表获取SQL信息

需要知道的信息:Cognos Report的名称

然后通过

select * 

from ACTIVITY_DB2ACTIVITIES A

where A.TPMON_CLIENT_APP like '%reportname%' 

获取希望监控的AGENT_ID

接下来,再通过AGENT_ID获取系列SQL。

select

A.AGENT_ID,

A.QUERY_COST_ESTIMATE,

A.ROWS_RETURNED,

A.TIME_STARTED,

A.TIME_COMPLETED,

A.TIME_COMPLETED -A.TIME_STARTED as RUNNINGTIME,

B.STMT_TEXT  -- 需要获取的SQL

from ACTIVITY_DB2ACTIVITIES A, ACTIVITYSTMT_DB2ACTIVITIES B

where 

 A.APPL_ID = B. APPL_ID

     AND A.UOW_ID = B.UOW_ID

     AND A.ACTIVITY_ID = B.ACTIVITY_ID

     AND A.ACTIVITY_TYPE= 'READ_DML'

     and A.AGENT_Id=agent_id



2. 通过表sysibmadm.mon_current_sql获取SQL。

同样的,如果是多用户并发使用该报表,需要获取需要监控的application handle,然后再查询。如下的例子是监控某一个report的所有handles。

SELECT   

APPLICATION_HANDLE,

         total_cpu_time / 1000000 total_cpu_sec,

         query_cost_estimate ,

         session_auth_id,

         application_name,

         client_applname,

         elapsed_time_sec,

         activity_state,

         activity_type,

         rows_read,

         rows_returned ,

         stmt_text

FROM     sysibmadm.mon_current_sql

where APPLICATION_NAME='BIBusTKServerMain' and 

client_applname like '%report_name%'

ORDER BY total_cpu_time DESC

推荐 3
本文由 BAO胖子 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。
转载、引用前需联系作者,并署名作者且注明文章出处。
本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

1 个评论

BAO胖子

BAO胖子 15年BI经验,涉足电力,快消品,医药,信息服务等行业的BI老兵。

这个前提是要安装配置好DB2 WLM,以及在cognos db connection里面配置call get_client_info

要回复文章请先登录注册