【发布时间】:2014-12-09 17:53:47
【问题描述】:
在 Spring-batch 中,通常当我们使用任何 itemreader 时,它会在每次调用 read 方法时获取每一行,一旦它等于提交间隔,它就会向 writer 发送数据。
我已经读过 StoredProcedureItemReader 和 JdbcCursorItemReader 是基于游标的阅读器,一旦执行查询,数据就在游标中,并且每次调用中读取方法都在行中。
但是,我的问题是该游标驻留在 java 内存或数据库中的哪个位置:- 1.如果它在单次获取java内存中的所有数据,那么批处理有什么好处,因为应用程序有可能变慢或内存不足。 2.如果是在数据库的某个地方,那么Storeprocedor或者JDBC连接本身会计时,直到所有的记录都在处理中。
我试图找到答案,但在文档中没有找到任何地方,也不知道自己测试一下才能确定。 我对我来说似乎很重要,好像有些人要使用这些阅读器,他们将需要增加连接超时或者他们需要更多的堆内存。
【问题讨论】:
-
欢迎提出改进问题的版本或任何测试方法,我想自己测试
标签: java spring spring-data spring-batch