2012-12-24 74 views
1

我正在使用休眠(3.3 vesion)与sql server 2005.我必须插入100千条记录到数据库。由于我使用IDENTITY作为主要生成策略,因此我无法在Hibernate中进行批量插入。我尝试了无状态会话并且无法获得任何性能。批量插入使用休眠和sql服务器

任何人都可以请建议一种方法来提高性能?

请帮助。

回答

0

这里的主要问题是阻止Hibernate在内存中缓存所有要插入的记录。如果只在事务中批量插入记录,则可以使用StatelessSession。如果您执行其他操作,例如记录一些关于批量加载的统计信息,则应在一定数量的记录(例如每10K条记录)后调用session.flush(),session.clear()。

1

使用HibernateTemplate.saveOrUpdateAll(Collection entities)会带来更好的性能。