通过 Ebean 的大量提交

High Number of commits through Ebean

由于观察到日志文件同步等待事件,我正在处理 DML 操作数量较多的应用程序。我们正在使用 ebean 框架来查询 Oracle 数据库。我一直在寻找一种减少提交次数的方法。是否建议使用 JDBC 批量使用批量大小属性进行交易调用。

Is it advisable to use JDBC batch using batch size attribute for transactional calls.

假设事务正在插入、更新或删除超过 1 bean/row 那么简而言之 .

需要注意的是,就应用程序代码而言,DML 的实际执行可能会在稍后以批量大小、提交时等的语句刷新发生。这意味着语句可以在应用程序代码中稍后执行(例如在提交时)。

这通常只在应用程序代码寻求处理异常(如数据库约束违规、缺少外键、唯一约束等)并实际继续事务时才对应用程序代码真正重要。在这种情况下,我们可能需要在应用程序代码中添加显式 transaction.flush() 以确保语句已执行并命中数据库。