Java 在Spring批处理应用程序中为所有作业保持相同的块大小

Java 在Spring批处理应用程序中为所有作业保持相同的块大小,java,spring-batch,Java,Spring Batch,只是想知道,在Spring批处理应用程序中,保持所有作业的块大小相同是一种好做法,还是应该根据特定作业的行为,保持不同作业的块大小不同 我可以理解,答案显然取决于很多因素,但我只是想知道这方面的标准方法是什么,如果有的话 谢谢区块大小与手头的工作非常相关。这是优化批处理作业性能的一个关键方法,可能特定于您编写的每个作业。例如,如果您有小的记录,您可以在一个块中有更多的记录,这将优化写入的数量。如果您有较大的记录,则可能无法在两次写入之间在内存中容纳尽可能多的记录。块大小对于手头的作业非常具体。这

只是想知道,在Spring批处理应用程序中,保持所有作业的块大小相同是一种好做法,还是应该根据特定作业的行为,保持不同作业的块大小不同

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


谢谢

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

块大小对于手头的作业非常具体。这是优化批处理作业性能的一个关键方法,可能特定于您编写的每个作业。例如,如果您有小的记录,您可以在一个块中有更多的记录,这将优化写入的数量。如果你有大量的记录,你可能无法在写之间存储多个内存。

< P>我认为在决定块大小时要考虑的因素将有助于回答这个问题。例如,如果这些因素对你所有的工作都是相同的(尽管这是非常罕见的),那么为什么不呢

一些书,如《SpringBatch in Action》建议将块大小通常保持在20到200之间。同一本书中的一些观点如下:

  • 块大小太小会创建太多事务,这会导致成本高昂,并使作业运行缓慢
  • 块大小过大会使事务性资源(如数据库)运行缓慢,因为数据库必须能够回滚操作
  • 提交间隔的最佳值取决于许多因素:数据、处理、资源的性质等等
  • 提交间隔是Spring批处理中的一个参数,因此请毫不犹豫地对其进行更改,以便为您的作业找到最合适的值

  • 因此,是的,我们的想法是尝试使用不同类型的样本数据和不同的块大小运行作业,然后自己比较结果,然后选择块大小 一些书,如《SpringBatch in Action》建议将块大小通常保持在20到200之间。同一本书中的一些观点如下:

  • 块大小太小会创建太多事务,这会导致成本高昂,并使作业运行缓慢
  • 块大小过大会使事务性资源(如数据库)运行缓慢,因为数据库必须能够回滚操作
  • 提交间隔的最佳值取决于许多因素:数据、处理、资源的性质等等
  • 提交间隔是Spring批处理中的一个参数,因此请毫不犹豫地对其进行更改,以便为您的作业找到最合适的值
  • 因此,是的,我们的想法是尝试使用不同类型的样本数据和不同的块大小运行作业,然后自己比较结果,然后选择块大小