java JPA开始事务瓶颈
我正在处理大量的实体,并使用hibernate将其持久化到DB。我已经发现,如果表中的数据量很大,开始事务需要花费大量时间,最长可达一分钟(从web服务获取数据时,整个同步过程需要20小时,而从web服务获取数据需要将近3小时)
有没有办法改进这种方法的持久性逻辑
final EntityManager em = emf.createEntityManager();
try {
final MfBranch branch = <get data from web service>
em.getTransaction().begin(); // bottleneck
em.merge(branch);
em.getTransaction().commit();
} finally {
DisposableUtils.closeQuietly(em);
}
我认为合并或事务提交操作耗时是合理的,但为什么事务开始耗费时间?
# 1 楼答案
在ObjectDB中,将有关于在JPA中持久化大数据的性能问题的参考