IBMER_JAY
作者IBMER_JAY·2011-09-09 10:05
数据库管理员·IBM

锁等待row的数据定位

字数 424阅读 1826评论 3赞 0
在程序出现问题的时候,锁等待往往得不到释放,就是那个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数据


如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!

0

添加新评论3 条评论

ysgiftysgift数据库管理员招商银行
2012-01-20 13:19
请问为什么是2的16次方,而不是表空间定义的size呢?
WUJJ0828WUJJ0828系统架构师华际信息系统有限公司
2011-09-13 09:52
不错
weiruan85weiruan85数据库管理员ibm
2011-09-09 10:49
这块为什么要乘以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
Ctrl+Enter 发表

作者其他文章

相关文章

相关问题

相关资料

X社区推广