关于Spring Batch

jessiejacky 2010-08-04 11:11:47
有哪位高手在实际的项目中使用过Spring Batch,我现在有两个问题:
1.经测试,每一个Job的启动和Step的切换都要花费25~30秒的时间,不知道这个开销是否有办法减少
2.我现在用Spring Batch实现从数据表读出数据,经过一定的处理或删选,写入另一张数据表。
采用Spring Batch的ItemReader和ItemWriter模型,reader用的是JdbcCursorItemReader,Writer用的是自定义ItemWriter,主要逻辑是基于Jdbctemplate的batch update,每次更新commit-interval数量的记录。目前最大的问题,每次 commit-interval的数量不能超过10000,否则outofmemory,有没有办法减少内存使用,二,这个模型花费的时间很长,远远超过使用sql语句实现。是否是实现方法有问题。
...全文
535 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
jacoe 2011-07-06
  • 打赏
  • 举报
回复
楼主,我最近也在做一个批处理的东西,能否提供一下spring batch的相关资料做些参考,谢谢!
QQ:271972663
E-mail:jacoe_007@163.com
非常感谢
jessiejacky 2010-08-04
  • 打赏
  • 举报
回复
我现在实际的情况是insert into B select (...........) from A
只不过A的数据量接近百万。
mavlarn 2010-08-04
  • 打赏
  • 举报
回复
我没有用过spring 的batch,但是,对于jdbc的批处理,原理应该都差不多,就是,你进行批处理的sql,必须是一样的,也就是说,一次进行1万条记录的update,那么你是用的sel语句需要一样,只是参数不一样。

因为jdbc使用批处理是使用prepared statement,sql一样的情况下,一次批处理1万个请求,prepared statement也只有1个,系统会把所有的参数一次发送,一次执行。如果你的sql语句不一样,哪怕只是有几个不一样,这时系统其实会准备1万个prepared statement。

67,515

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧