JDBC批处理包括以下步骤:
- 将插入语句添加到批处理中,保存在内存中
- 当您达到了批处理中记录的给定数量的插入语句时(或不再有要执行的插入语句时),请在一次网络往返中将此批处理命令发送到数据库,以便数据库实际执行这些操作插入语句。
刷新会话包括告诉Hibernate:将内存中保留的所有内容都插入数据库。
因此,如果您的批处理大小设置为30,并且每5个实体刷新一次,则Hibernate将执行很多小批处理,每个批处理包含5条插入语句,而不是少执行6批30条语句。由于您确定30为最佳批处理大小,因此每5个实体进行刷新不会使用此最佳大小。
相反,如果刷新每个35个实体,则Hibernate将执行一批30次插入,然后一批5次,然后一批30次,然后批5次,依此类推。再次,您不是使用最佳批次大小。
如果您每30个实体刷新一次,则hibernate状态将仅执行最佳大小的批处理,如果最后一个实体的总数不是30的倍数,则hibernate模式除外。



