免费注册 查看新帖 |

Chinaunix

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

informix行锁 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-12-09 15:19 |只看该作者 |倒序浏览
这两天一直有个疑惑,google找了好久还是不解
在一个事务中根据主键更新了一条记录的一个字段,在该事务没有提交前,其他事务不能修改该表中的任何一条记录,表我已经设置成行级锁了

论坛徽章:
11
金牛座
日期:2015-03-19 16:56:22数据库技术版块每日发帖之星
日期:2016-08-02 06:20:00数据库技术版块每日发帖之星
日期:2016-04-24 06:20:00数据库技术版块每日发帖之星
日期:2016-04-13 06:20:00IT运维版块每日发帖之星
日期:2016-04-13 06:20:00数据库技术版块每日发帖之星
日期:2016-02-03 06:20:00数据库技术版块每日发帖之星
日期:2015-08-06 06:20:00季节之章:春
日期:2015-03-27 15:54:57羊年新春福章
日期:2015-03-27 15:54:37戌狗
日期:2015-03-19 16:56:41数据库技术版块每日发帖之星
日期:2016-08-18 06:20:00
2 [报告]
发表于 2008-12-09 15:22 |只看该作者

回复 #1 sunwenxiong 的帖子

行级锁,仅限该行......不是该表..

论坛徽章:
0
3 [报告]
发表于 2008-12-09 15:53 |只看该作者

回复 #2 liaosnet 的帖子

我也是这么觉得,但是试验结果就是我所说的那样,一个事务锁了一条记录,其他事务就不能锁该表的其他记录了
数据库版本:Informix Dynamic Server 2000 Version 9.21.UC3

[ 本帖最后由 sunwenxiong 于 2008-12-9 15:57 编辑 ]

论坛徽章:
0
4 [报告]
发表于 2008-12-09 20:46 |只看该作者
你怎么操作的只锁着一条记录?
正常更新一条记录应该很快的,很难捕捉的到的。

论坛徽章:
0
5 [报告]
发表于 2008-12-09 20:47 |只看该作者
如果用lock table在事务里面,当然就是锁的整个表,所以不知道你怎么操作保持这个锁,而且只锁着一条记录。

论坛徽章:
0
6 [报告]
发表于 2008-12-10 09:13 |只看该作者

回复 #4 wuicpp 的帖子

我们一个功能需要在通信成功之后做相关的业务处理,客户要求把业务处理提前到通信前面做,通信放在最后,通信成功则提交事务,通信失败则回滚事务,业务处理部分就是简单的修改业务主表的一些标志,由于整个事务必须等到通信完毕才提交,所以整个事务时间可能长一点时间才提交,目前采用多线程处理这种任务,每个线程在处理业务这部分的时候,发现每个线程因为锁表而互相等待,问题就是一个线程启动一个事务修改业务主表一条记录标志,另外的线程必须等到该线程通信完毕提交了事务才能继续修改业务主表中的其他记录标志,实质上就失去了多线程处理的意义

论坛徽章:
0
7 [报告]
发表于 2008-12-10 09:15 |只看该作者

回复 #5 wuicpp 的帖子

我没有采用lock table的方式去锁整个表,就是普通的启动一个事务,然后update业务主表的一条记录的某个字段,数据库隔离级别使用可重复读

论坛徽章:
5
荣誉会员
日期:2011-11-23 16:44:17CU大牛徽章
日期:2013-09-18 15:15:15CU大牛徽章
日期:2013-09-18 15:15:45未羊
日期:2014-02-25 14:37:19射手座
日期:2014-12-26 22:55:37
8 [报告]
发表于 2008-12-10 16:11 |只看该作者
可重复读?你疯了
干嘛不用commit read?

论坛徽章:
0
9 [报告]
发表于 2008-12-11 00:07 |只看该作者

回复 #8 wolfop 的帖子

今天回复的时候隔离级别写错了,隔离级别就是采用默认的方式read commit

论坛徽章:
0
10 [报告]
发表于 2008-12-15 16:33 |只看该作者
最简单的验证方法是:你使用dbaccess-》begin work;update其中一条记录-》检查同时是否可以修改该表的其他数据
如果你实在想知道你的表上到底有什么锁,请提供oncheck -pt database:tablename和onstat -k信息
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP