Hibernate Transaction运行缓慢

时间:2016-09-11 06:38:06

标签: java hibernate transactions entitymanager

我有一段代码,一次将数据插入DB一条记录中的4个表中。数据来自一个平均大约有11K记录的文件。使用此代码,完成处理将在10-15分钟内完成。

for (final LedgerEntry ledgerEntry : items) {
    final EntityTransaction tx = entityManager.getTransaction();
    tx.begin(); 
    entityManager.persist(ledgerEntry);
    tx.commit();
}

我已经重构了一次性插入数据的代码,这样如果出现问题,DB中不会插​​入数据,而上述代码中并非如此。我的新代码需要大约10分钟才能在测试环境中的数据库中插入数据。但在Live中,它的工作速度很慢,大约需要6到7个小时才能获得9k记录。

final EntityTransaction tx = entityManager.getTransaction();
if (!tx.isActive()) tx.begin();
for (final LedgerEntry ledgerEntry : items) {
    entityManager.persist(ledgerEntry);
}
tx.commit();

任何人都可以建议可以采取哪些措施来提高性能,因为早期代码导致很多问题导致文件失败并插入重复记录

0 个答案:

没有答案