免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3157 | 回复: 6
打印 上一主题 下一主题

db2锁的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-12-28 10:54 |只看该作者 |倒序浏览
最近在调查一个lock-wait的问题,但是发现一个奇怪的现象,从snapshot里看是在执行一个select查询语句,但它等待的锁却是在sql语句里不存在的表上。我看了这个语句的access plan,也不会用到那个表。什么情况下会产生这种锁等待情况呢?

论坛徽章:
0
2 [报告]
发表于 2007-12-28 16:13 |只看该作者
是系统表吗?

论坛徽章:
0
3 [报告]
发表于 2007-12-29 17:01 |只看该作者
不是系统表,但这2个表倒有父子关系,select是在父表和几个其它表,但它等的锁是在子表上

论坛徽章:
0
4 [报告]
发表于 2007-12-30 10:42 |只看该作者
这就说的通了,主要看你定义的是什么action
如果你定义为子表中没引用即删除父表中的值的话,那在子表delete或者update的同时select父表理论上就会有锁等待.
你看看父和子表的ddl 或者发上来看看

论坛徽章:
0
5 [报告]
发表于 2008-01-02 20:09 |只看该作者
我看了一下表的定义,没有定义“子表中没引用即删除父表中的值”,这个应该不是默认吧?

论坛徽章:
0
6 [报告]
发表于 2008-01-09 00:06 |只看该作者
不是默认 默认是
ON DELETE NO ACTION
ON UPDATE NO ACTION
即子表中有引用就不能删除父表中的值

LZ如果想让大家帮忙分析的话最好把sql语句 snapshot 及表的ddl帖上来让大家看看

论坛徽章:
0
7 [报告]
发表于 2008-01-09 00:13 |只看该作者
理论上就是这样 看看父子表此时有什么操作就可以解释了
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP