性能监控是个宽泛的话题,数据库性能涉及主机,操作系统,网络,存储等,常用的操作系统级别的使用nmon,数据库级别使用db2top,配合在多个维度监控
收起db2没有oracle那么方便的工具,但是等待事件等待时间都是会记录的,不过都是累加值,分析的话需要基于两次采集算差值才行。同时要搞清楚时间消耗的层次关系,例如总等待时间包含很多其他子等待时间。这个在mon_get相关的表函数里能获取数据。不同mon_get函数监控了很多相同的指标,不过是基于不同维度的总结。DB2特别好用的工具比较少。
收起DB2 的监视视图中没有 类似 oracle 的 wait event 的视图。但是,DB2 v9.7 及以后版本,MON_GET 系列视图中,提供了connection(oracle中对应的是 session)和 activity 级别的 等待时间 统计,例如 锁等时间、日志读写等待时间等,基本上够用,可是真心没有 oracle 分类那么细,那么系统。
收起表函数table(mon_get_pkg_cache_stmt(NULL,NULL,NULL,-2)) 中有
各种等待指标请参考knowledge center.
如果你使用的是11.1版本,可以运行下面的脚本:
/opt/IBM/db2/V11.1/samples/perf/db2mon.sh
这个脚本是专门用于性能测试和调优的,提供了丰富的信息。
具体可参考:
https://www.ibm.com/support/knowledgecenter/zh/SSEPGG_11.1.0/com.ibm.db2.luw.admin.perf.doc/doc/t0070377.html
如果你使用的是9.7,10.1和10.5的版本,可以通过下面的网址下载db2mon.pl,生成db2mon.sql,然后进行监控
https://developer.ibm.com/recipes/tutorials/db2-performance-monitoring-with-db2mon-pl/
一个很好用的性能分析脚本--psmon3.sql
https://www-01.ibm.com/support/docview.wss?uid=swg22000210