职业IT人-IT人生活圈

 找回密码
 成为会员
搜索
查看: 854|回复: 9

讨论spring事务对方法执行时间的影响

[复制链接]
芷馨 发表于 2011-8-29 10:55 | 显示全部楼层 |阅读模式
一个saveXXXX方法处理一个LIST 加了spring事务
list size比较小时没什么问题
如果list很大 大于10W时方法执行时间很长 spring事务是影响它的原因吗
我领导说这是个长事务 占什么日志空间 我很费解 我理解的长事务是事务里嵌套着其他事务才是长事务....
想这种比较慢怎么做比较好 用多线程操作数据表我担心会造成数据库死锁
欢迎各位发表意见

钰云 发表于 2011-8-29 10:55 | 显示全部楼层
这个方法里面要跟新3张表数据

gz-vps 发表于 2011-8-29 10:55 | 显示全部楼层
长事务影响redo,undo和锁这三个资源的释放,为了保证一致性
长事务代表锁住的资源很对,理论上自然死锁几率要大很多

江南枫 发表于 2011-8-29 10:55 | 显示全部楼层
ppgunjack 写道
长事务影响redo,undo和锁这三个资源的释放,为了保证一致性
长事务代表锁住的资源很对,理论上自然死锁几率要大很多

什么是长事务 我很费解

fossil 发表于 2011-8-29 10:56 | 显示全部楼层
有用批处理吗?

走失的猫咪 发表于 2011-8-29 10:56 | 显示全部楼层
现在的业务情况是这样的 调外部接口下载一个文件处理 封装成一个LIST 需要去更新一些关联表 list size 不确定 很大 也可能很小 小数据量时很快 大数据量时 很慢了 spring事务对这个方法有没有影响

天上智喜 发表于 2011-8-29 10:56 | 显示全部楼层
finallygo 写道
有用批处理吗?

saveOrUpdate(List)?
还是分割list 分几次来处理?


fossil 发表于 2011-8-29 10:56 | 显示全部楼层
看spring事务最后到底串联了多少子事务对DB的修改才commit
spring事务应该是包得很浅的,串联可能也是在aop处加了commit,相对于数据库调用,这个成本可忽略

gz-vps 发表于 2011-8-29 10:56 | 显示全部楼层
ppgunjack 写道
看spring事务最后到底串联了多少子事务对DB的修改才commit
spring事务应该是包得很浅的,串联可能也是在aop处加了commit,相对于数据库调用,这个成本可忽略

意思是 在一个事务里处理10W条数据的list 跟我在外层分割list分几次处理LIST 其实是一样的吗


月上萧萧 发表于 2011-8-29 10:56 | 显示全部楼层
现在我得到的一个结论就是 spring 事务对方法执行的效率几乎可以忽略
程序慢可能是别的问题引起的 但我要怎么做执行时间稍微能短一点呢
我要遍历每个对象去做个关联查询 再update 其他的表
10W条数据 怎么能在10分钟内3张表都update玩
您需要登录后才可以回帖 登录 | 成为会员

本版积分规则

QQ|手机版|小黑屋|网站帮助|职业IT人-IT人生活圈 ( 粤ICP备12053935号-1 )|网站地图
本站文章版权归原发布者及原出处所有。内容为作者个人观点,并不代表本站赞同其观点和对其真实性负责,本站只提供参考并不构成任何投资及应用建议。本站是信息平台,网站上部分文章为转载,并不用于任何商业目的,我们已经尽可能的对作者和来源进行了通告,但是能力有限或疏忽造成漏登,请及时联系我们,我们将根据著作权人的要求立即更正或者删除有关内容。

GMT+8, 2024-4-27 17:42 , Processed in 0.136725 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表