免费注册 查看新帖 |

Chinaunix

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

如何解决一个并发性能瓶颈的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2004-02-05 13:04 |只看该作者 |倒序浏览
在一个事务很长的procedure中有一个执行时间很短的subprocedure,但这个subprocedure会锁住很频繁访问的数据记录进行更新,这样导致了整个procedure 的并发性能很差。

由于subprocedure更新的数据并无业务意义,所以我考虑将subprocedure放在独立的事务中处理

于是我在subprocedure中加入了
BEGIN WORK;
.....
COMMIT WORK;

但在程序运行时,系统会给我一个错误提示,transaction already exist
显然这种方法不行。

不知道有什么方法可以解决这一并发性的问题

谢谢

前面提过这一问题,但没问对要点,所以重新编辑了此问题,见谅

论坛徽章:
0
2 [报告]
发表于 2004-02-05 16:51 |只看该作者

如何解决一个并发性能瓶颈的问题

我建议不要这样干,我曾经有过一次类似的经历:
使用了嵌套的事务,在个别系统繁忙的时候出现个别事务回滚不完整的情况,调试了1个月才实际定位了错误,十分悲惨!

论坛徽章:
0
3 [报告]
发表于 2004-02-05 17:10 |只看该作者

如何解决一个并发性能瓶颈的问题

我也不想用嵌套的事务,只想subprocedure中是个独立的事务。
只所以想这样做是因为我的subprocedure中会锁住很频繁访问的数据记录,这条记录的更新无需受parent procedure 事务是否成功失败的影响。但parent procedure 是一个很长的事务,如果都在同一个事务里面,会导致这个应用的并发性很差。

论坛徽章:
0
4 [报告]
发表于 2004-02-05 19:09 |只看该作者

如何解决一个并发性能瓶颈的问题

我也遇到过,通过跟踪查出有问题的记录删掉/更正就好了!

论坛徽章:
0
5 [报告]
发表于 2004-02-05 20:43 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
6 [报告]
发表于 2004-02-06 07:40 |只看该作者

如何解决一个并发性能瓶颈的问题

事务不可能嵌套。而有时候形成的“嵌套”应该是多步提交造成的,并不是真正意义上的嵌套

论坛徽章:
0
7 [报告]
发表于 2004-02-06 11:51 |只看该作者

如何解决一个并发性能瓶颈的问题

你能不能考虑将你的subprocedure从你的parent procedure 中脱离出来,进行分步提交,或者考虑一下你频繁使用的表的锁机制,如果使用的是行级锁可以改善并发性能

论坛徽章:
0
8 [报告]
发表于 2004-02-06 12:25 |只看该作者

如何解决一个并发性能瓶颈的问题

不幸的是,这个subprocedure无法分离。
我使用的是行锁。但subprocedure中每次更新的也是同一行,所以仍会锁住。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP