2012-12-24 186 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)會帶來更好的性能。