繁体   English   中英

在Spring Batch Application中为所有作业保持相同的块大小

[英]keeping same chunk size for all jobs in Spring Batch Application

只是想知道在Spring Batch应用程序中将所有作业的块大小保持相同是一种好习惯还是要根据特定作业的行为将其保持不同的大小?

我可以理解,答案显然取决于很多因素,但是只是想知道什么是标准方法(如果有)。

谢谢

块大小非常适合手头的工作。 这是优化批处理作业性能的关键方法,可能特定于您编写的每个作业。 例如,如果您的记录很小,则可以在一个大块中包含更多记录,这将优化写入次数。 如果您有大记录,那么在两次写入之间可能无法容纳足够多的内存。

我认为理解决定块大小时要考虑的因素将有助于回答这个问题。 例如,如果这些因素在您所有工作中都相同(尽管这种情况很少见),那为什么不呢。

有些书(例如“ Spring Batch in Action”)建议将块大小通常保持在20到200之间。同一本书的一些建议如下:

  1. 块大小太小会导致事务过多,这很昂贵,并使作业运行缓慢。
  2. 块大小太大会使事务资源(如数据库)也运行缓慢,因为数据库必须能够回滚操作。
  3. 提交间隔的最佳值取决于许多因素:数据,处理,资源的性质等等。
  4. 提交间隔是Spring Batch中的一个参数,因此请随时更改它,以找到最适合您的作业的值。

所以是的,我们的想法是尝试使用不同类型的样本数据和不同块大小运行作业,并为自己比较结果,然后选择块大小。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM