各位大侠么,我在测试环境做压力测试的时候发现一条insert语句竟然是CPU里面吃的最高的,我使用 db2pd -database bpedb -edu -applications -dynamic 来获得信息的结果如下下,请问insert语句能造成这样的厉害还是说有别的原因?Database Partition 0 -- Active -- Up 5 days 07...
显示全部各位大侠么,我在测试环境做压力测试的时候发现一条insert语句竟然是CPU里面吃的最高的,我使用 db2pd -database bpedb -edu -applications -dynamic 来获得信息的结果如下下,请问insert语句能造成这样的厉害还是说有别的原因?
Database Partition 0 -- Active -- Up 5 days 07:58:57
man ,你这种看法就是有问题的。 之前已经说过了 db2pd -edu 出来的usr sys 是累积值 而不是当前值。
看那个edu 耗费的cpu高还是不高,对看两次的delta 值。 理解了这个,后边对问题的分析才是正确的。
关于insert 耗费cpu 这个问题, 得理解insert 插入数据库的过程。比如缓冲池太小导致频繁的页清除, 同时因为存在索引,维护的开销也是比较大的。 如果表所在的表空间是sms ,那么查找空闲页的开销也是比较大的。 还有触发器,外键等等原因。
另外,出问题时需要对app 做快照,间隔时间做, 对比snapshot数据的变化,找到问题分析的原因。
或者db2exfmt 看执行计划,db2batch 测试性能等等
收起