|
|
1
9
在当前配置下,如果您的每个读取项都指向writer(即,如果它没有在处理器中过滤掉),那么您将需要1000/20=50次数据库读取才能达到块大小,即当您实际调用writer进行写入时。 Spring批处理将处理过的项目保存在内存中,直到您达到块大小,并且保存项目会消耗内存。
因此,您的配置需要与您正在做的相反,即将读取器页面大小增加到最小值,等于块大小/提交间隔,或者更大。一旦读取的数据以小的块处理,您就可以再次读取数据库。 因此,正如您在当前的文章中所注意到的,从概念上讲,这些都是不相关的概念-读卡器页面大小是为了最小化数据库调用(这个概念不是spring批处理概念,而是特定于读卡器的-如果它不是分页读卡器,这个概念就不会出现在图片中),而块大小是关于将处理过的数据提交到小块中,以减少内存足迹。 |
|
|
2
1
是的,提交间隔决定了一个区块中要处理多少条记录。 数据库页面大小决定了一次从数据库中提取多少条记录。这更像是一个优化设置,介于你想要多大的缓冲区和司机从数据库中获取数据的行程数之间。 |
|
|
user29759326 · 如何返回递归函数中的最后一个值? 1 年前 |
|
|
malife89 · 将java中的字符串读取为正确的日期格式 1 年前 |
|
|
Tim · 在java中,有没有更快的方法将字节数组写入文件? 1 年前 |
|
|
rudraraj · java中未声明最终变量 1 年前 |
|
|
Bala Ji · 以下BFS的实施效率如何? 1 年前 |