Db2sql top用法 oracle,TOP SQL监控之db2篇

上一篇,我们写了如何获取oracle的TOP SQL,

这一篇,我们来看看如何获取db2的TOP SQL。

相比oracle,db2在国内显得更小众点,所以资料可能会相对少点,好在IBM的文档整理的挺规范整齐的,还是免费查阅的(如果你能找到),这点比Oracle要良心多了。

从我个人的使用经历来看的话,db2的性能并不输oracle,很简单的道理,db2可以研究oracle然后改进再超越oracle,当然我要这么下结论,等等可能会被口水淹死。

言归正传,下面介绍获取db2 TOP SQL的方式,这里不得不吐槽下db2,监控的方便性确实差oracle一大截。

前置条件—开启监视器

db2 update dbm cfg using DFT_MON_BUFPOOL ON DFT_MON_LOCK ON DFT_MON_SORT ON DFT_MON_STMT ON DFT_MON_TABLE ON DFT_MON_UOW ON

监控正在运行的运行时间大于1分钟的SQL

SELECT * FROM sysibmadm.long_running_sql

WHERE STMT_TEXT IS NOT NULL

ORDER BY elapsed_time_min DESC

监控正在执行的SQL

select * from sysibmadm.mon_current_sql;

监控正在运行的运行时间小于1分钟的SQL

SELECT m. *

, n.APPL_NAME

, n.AUTHID

, n.APPL_ID

, n.APPL_STATUS

, n.CLIENT_NNAME

FROM (SELECT x.AGENT_ID

, x.ROWS_READ

, x.ROWS_WRITTEN

, x.QUERY_COST_ESTIMATE

, x.QUERY_CARD_ESTIMATE

, x.TOTAL_SORT_TIME

, x.STMT_START

, x.STMT_ELAPSED_TIME_S

, x.STMT_TEXT

FROM SYSIBMADM.SNAPSTMT x

WHERE STMT_TEXT IS NOT NULL AND x.STMT_STOP IS NULL) m

LEFT JOIN SYSIBMADM.APPLICATIONS n ON m.AGENT_ID = n.AGENT_ID

ORDER BY m.STMT_START --按照最早执行时间排序

--ORDER BY m.STMT_ELAPSED_TIME_S DESC --按照执行时间倒序排序)x

监控已经执行的TOP SQL

我一般都是用这句监控TOP SQL。

SELECT * FROM

(SELECT A.NUM_EXECUTIONS

, A.ROWS_READ

, A.ROWS_READ / A.NUM_EXECUTIONS AS AVG_ROWS_READ

, A.STMT_SORTS

, A.SORT_OVERFLOWS

, A.TOTAL_SORT_TIME

, CASE WHEN A.STMT_SORTS>0 THEN A.TOTAL_SORT_TIME / A.STMT_SORTS ELSE NULL END AS AVG_SORT_TIME

, A.TOTAL_EXEC_TIME

, A.TOTAL_EXEC_TIME / A.NUM_EXECUTIONS AS AVG_EXEC_TIME

, A.POOL_DATA_L_READS

, A.POOL_DATA_P_READS

, A.POOL_DATA_P_READS / A.NUM_EXECUTIONS AS AVG_POOL_DATA_P_READS

, A.POOL_TEMP_DATA_L_READS

, A.POOL_TEMP_DATA_P_READS

, A.POOL_INDEX_L_READS

, A.POOL_INDEX_P_READS

, A.POOL_TEMP_INDEX_L_READS

, A.POOL_TEMP_INDEX_P_READS

, A.STMT_TEXT

FROM sysibmadm.SNAPDYN_SQL A

WHERE A.NUM_EXECUTIONS > 0)x

ORDER BY AVG_EXEC_TIME DESC FETCH FIRST 100 ROWS ONLY ;

db2top

还有一种方式是用db2top监控,不过这种方式感觉还是没有直接查SQL来得方便。

总结

db2相比oracle,在监控方面的友好型和多样性上面确实差了不是一点点。

不过好在,也基本够用。

来源:51CTO

作者:山河行

链接:https://blog.51cto.com/14437683/2565410

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值