操作系统 windows2008 R2
cpu intel至强 2.0G,16核,双cpu
内存 64G
数据库db2 9.7 64位
故障现象:业务运行隔上一会就要卡一下,间隔的时间不定,从服务器上运行20条VALUES CURRENT TIMESTAMP;正常情况下这20条命令总的执行时间在0.8秒以下,一旦卡的时候就需要运行接近3秒,从操作系统任务管理器上看cpu使用率有个峰值,但是不超过30%,这个服务器上只运行了db2业务,
我使用perfmon性能监视器查看数据库所在的磁盘分区D盘和processor的idle_time计数器,通常情况下,这两个值都在90-100之间波动,cpu的idle_time就时不时的(大约2分钟左右就会出现1-3次)会降低到50,最多的时候降低到10左右,这时候执行VALUES CURRENT TIMESTAMP;就比较慢,有时候d盘的idle_time也会跟cpu的idle_time同时降低,不过出现的频率要低些,而且这种情况在业务繁忙的时候出现的频率要高些,但是在业务完全不忙的时候也会出现,这个问题困扰很久了,还有其他方法可以定位问题吗
请问有没有办法能够在出问题的时候跟踪到是哪个站点的什么语句或操作导致的?
我前段时间已经用下面这个语句把一些效率比较低的sql语句找出来修改或者建了索引了,但是问题依旧
SELECT
NUM_EXECUTIONS 执行次数
, PREP_TIME_WORST 最差准备时间
, PREP_TIME_BEST 最佳准备时间
, ROWS_READ/NUM_EXECUTIONS 平均读取的行数
, ROWS_WRITTEN/NUM_EXECUTIONS 写入的行数
, STMT_SORTS/NUM_EXECUTIONS 排序
, SORT_OVERFLOWS 排序溢出
, TOTAL_SORT_TIME/NUM_EXECUTIONS 平均排序时间
,TOTAL_EXEC_TIME_MS/NUM_EXECUTIONS 平均执行时间
, STMT_TEXT,a.*
FROM TABLE (SNAP_GET_DYN_SQL_V95 ('EHIS', -1)) AS a
WHERE SNAPSHOT_timestamp>CURRENT TIMESTAMP -20 seconds AND NUM_EXECUTIONS>0
ORDER BY TOTAL_EXEC_TIME_MS/NUM_EXECUTIONS DESC
FETCH FIRST 200 ROWS ONLY
收起