在查看DB2快照的时候经常会看到各种状态,于是总结常见状态如下:
STATUS | 含义 |
---|---|
Connect Completed | 应用连库成功了 |
UOW Executing | 应用正在执行某个SQL语句 |
UOW Waiting | 应用执行完一条SQL了,在等着执行同一事务中下一条SQL。 或者执行完了一个事务,在等着执行下一个事务 |
Commit Active | 在做commit操作 |
Lock Wait | 在等其他应用hold住的锁 |
Rollback Active | 在做rollback操作 |
Pending Remote Quest | DPF环境下才有,在等其他节点的响应 |
Federated request pending | 联邦环境才有,在等联邦数据源的返回结果 |
其中,(1)当应用状态是UOW Waiting的时候,如何判断是等执行同一事务中的下一条SQL还是在等执行下一个事务呢?
此时我们可以利用Snapshot中的UOW stop timestamp,如果看到这里为空,说明该事务尚未结束在等该事务的下一条SQL。相反,若该时间戳不为空,则说明执行了当前事务在等下一个事务的执行。
(2)当应用的状态为Commit Active时持续的状态长达几秒钟,则说明性能有问题,可以查看是否db2loggw进程(用于将日志记录写入日志文件,将日志从日志缓冲区写入磁盘上的日志文件中)太忙或者磁盘的IO繁忙。