使用JPA交易传播优化导入。REQUIRES_NEW

发布时间:2020-07-07 16:56

在运行于WebLogic上的Spring&Hibernate应用程序中,我正在将数据(不使用Spring Batch)导入Oracle Db中,并且必须优化速度。对于从文件中读取的每个“行”,我依次调用两个@Transactional(propagation = Propagation.REQUIRES_NEW)方法,因为行的导入可以部分成功,完全成功,当然也可以失败。所以我需要控制要回滚的数量。

我测量了各种操作的持续时间,似乎这两种方法中的每种持续时间的大约20%至30%是花在暂停现有事务和创建新事务上的时间。此外,对每个事务都进行一次提交这些事务的速度很慢,而且我不知道如何在单个数据库操作中批处理更多的事务。似乎WebLogic的JTA实现不允许嵌套事务。

我如何加快速度?

回答1