1
7
您可能会尝试刷新和清除会话,比如说每100个对象… 所以执行
每100或1000个插入件。 这将刷新并清除休眠会话,并阻止它变大(可能是为什么您的100000个对象需要这么长时间)。 此外,如果您使用的是身份标识符生成器,那么Hibernate将自动关闭批插入。批量插入将提高性能。您还需要指定hibernate.jdbc.batch_-size配置属性,该属性相当于一个时间编号中的100。 Manning用Hibernate的Java持久性是这个(伟大的书——保存我的皮肤无数次)的来源。 |
2
6
您也可以考虑使用 StatelessSession 因为它是为批量操作而设计的。
|
3
3
有时候,一个奥玛佩尔不是合适的钉子锤。尤其是批处理操作,通常使用普通的旧JDBC执行更高的性能。当然,这取决于各种条件,但您至少应该将其视为一个选项,并比较这两种方法的性能。 |
4
0
这不仅仅是一个数据库插入性能问题;如果您要创建数万个对象而不执行刷新,则休眠会话将一直增长,直到您耗尽内存。 |
Sanjay · 批量插入不处理无效文件 7 年前 |
sam · 当没有标识列时,如何进行批量插入? 8 年前 |
Zaid Direya · 批量插入验证的最佳方法laravel 5 8 年前 |
Ankish Jain · ios Coredata大型集合插入 11 年前 |
Luke · 带逻辑的SqlServer大容量插入 11 年前 |