Java 如何在使用大量记录的同时使用Hibernate加快更新速度

Java 如何在使用大量记录的同时使用Hibernate加快更新速度,java,sql-server-2008,hibernate,indexing,hql,Java,Sql Server 2008,Hibernate,Indexing,Hql,我在使用hibernate更新(Session.update())部分和大量记录时遇到了问题。它正在变得非常缓慢。但是insert(Session.insert())部分没有问题。在我们更新10万条记录的同时,是否有任何方法可以完成更新部分。是否有任何方法可以调整sql server以加快更新速度。当我们向所有主字段添加单独的索引时,删除部分需要时间。有没有更好的方法来调优sql server,使其能够很好地执行插入、删除和更新操作 谢谢,, Saif.对每条记录进行批量更新,而不是单独更新。这

我在使用hibernate更新(Session.update())部分和大量记录时遇到了问题。它正在变得非常缓慢。但是insert(Session.insert())部分没有问题。在我们更新10万条记录的同时,是否有任何方法可以完成更新部分。是否有任何方法可以调整sql server以加快更新速度。当我们向所有主字段添加单独的索引时,删除部分需要时间。有没有更好的方法来调优sql server,使其能够很好地执行插入、删除和更新操作

谢谢,,
Saif.

对每条记录进行批量更新,而不是单独更新。这样,所有记录只需点击数据库一次。

当您执行保存操作时,仅将数据保存到数据库中,而当您更新记录时,它必须首先执行搜索操作,然后更新记录,这就是为什么在处理大量记录时,您会遇到更新问题而不是保存问题使用hibernate的批处理更新记录。下面是一个很好的链接,从教程的角度介绍hibernate中的批处理:


可能还有其他解决方案,但我知道的一种方法是:

无论何时通过
会话保存或更新实例(例如session.save()、session.update()、session.saveOrUpdate()等)
,它都会更新实例FK关联

因此,如果您的POJO有多个FK关联,它也会对这些表进行查询


因此,我建议使用HQL(如果它适用于您的需求)来保存或更新实例,而不是以这种方式更新实例。

您能发布一些代码吗