db2top是一个很强大的工具,可是有时候无法显示dynamic SQL,具体的表现就是一直不出结果。
如果要确定是不是db2top本身的问题,有以下两个思路:
1. 看看db2top的其他选项有没有问题
2. 看看同一个实例下面其他数据库,或者同一台机器下其他实例的数据库使用db2top有没有问题
如果仅仅是某个数据库下面不能显示结果,可能是数据库本身太繁忙(dynamic SQL过多)。建议增加 MON_HEAP_SZ 的大小,如果已经是AUTOMATIC的,看下当前值,根据当前值调大
inst97@db2a:~$ db2 get dbm cfg | grep -i MON_HEAP_SZ
Database monitor heap size (4KB) (MON_HEAP_SZ) = AUTOMATIC(90)
这个值(貌似)需要重启实例后生效。
另外,可以尝试增加db2top命令的refresh间隔,默认值为2秒,下面的命令就可以每10秒刷新一次:
$ db2top -i 10 -d sample
曾遇到过某Db2系统,db2top不能显示dynamic SQL,将refresh间隔增加到4秒才能显示。
如果以上两个办法都不能解决问题,则建议收集db2pd -stack和db2trace的数据。