WEB开发网
开发学院数据库DB2 db2诊断系列之---定位锁等待问题 阅读

db2诊断系列之---定位锁等待问题

 2012-07-04 17:53:53 来源:WEB开发网   
核心提示:总结通过上面的方法,我们简单描述了一个db2锁问题的定位方法,db2诊断系列之---定位锁等待问题(4),希望能给大家在分析和定位应用性能问题的时候起到一定的帮助根据rid能查到该row数据==在程序出现问题的时候,锁等待往往得不到释放,RID在v8里面是4字节,在v9里面的large tablespace(默认)是6


总结


通过上面的方法,我们简单描述了一个db2锁问题的定位方法,希望能给大家在分析和定位应用性能问题的时候起到一定的帮助

根据rid能查到该row数据
==========================
在程序出现问题的时候,锁等待往往得不到释放,就是那个application执行完毕都还hold住表,在这种情况下,我们需要尽可能多的提供信息给开发人员,帮助他们定位问题所在,确实这个很useful。


1,db2pd -d mall -locks show detail 查看到锁等待row所在的page和slot
2,根据数据库ROWID的组成,pages为640和slot为4,如果是 large tablespace,则rowid转换为整数为:640*65536+4
(补充:一般说来,RID在v8里面是4字节,在v9里面的large tablespace(默认)是6字节。4字节的版本是3字节page id加上1字节的slot。6字节版本是4字节page id加上2字节的slot

3,select * from ORDERS where rid(ORDERS)= 54758604808 with ur 根据rid能查到该row数据



------
这块为什么要乘以65536
大家可能听说过RID,也很困惑RID是什么咚咚(只知道是指向某一个record的,但是不知道具体是怎么指的)。
一般说来,RID在v8里面是4字节,在v9里面的large tablespace(默认)是6字节。4字节的版本是3字节page id加上1字节的slot。
6字节版本是4字节page id加上2字节的slot

这块是v9 ,large tablespace ,所以2的16次方=65536 ,也就是一页有65536个slot, 故当前的row对应的rowid为640*65536+4 

上一页  1 2 3 4 

Tags:db 诊断 系列

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接