1

我正在测试 eclipselink 以使批量数据插入 derby。同组数据对比,eclipse链接jdbc批量更新耗时加倍。

I have enabled the batchupdate feature of eclipse link, and the other properties:

        <property name="eclipselink.jdbc.batch-writing" value="JDBC"/>
        <property name="eclipselink.jdbc.batch-writing.size" value="1000"/>
        <property name="eclipselink.jdbc.cache-statements" value="true"/>
        <property name="eclipselink.jdbc.cache-statements.size" value="30"/>
        <property name="eclipselink.cache.shared.default" value="false"/>
        <property name="eclipselink.jdbc.read-connections.max" value="20"/>
        <property name="eclipselink.jdbc.read-connections.min" value="1"/>
        <property name="eclipselink.jdbc.write-connections.min" value="1"/>
        <property name="eclipselink.jdbc.write-connections.max" value="30"/>

问题是如何使eclipse链接更快?

4

1 回答 1

1

请包括代码和 SQL 日志。还包括您的 JDBC 代码,并确保它是 kosher(结束语句等)。

你在使用序列预分配吗?如果没有,那么您将不会获得任何批处理(检查您的 SQL 日志以查看批处理是否正在发生)。

我不会更改连接池默认值,您的效率低于默认值(初始 1,最小 32,最大 32,没有单独的读/写池)。具有不同的最小值/最大值会导致连接节流,这很糟糕。

见, http://java-persistence-performance.blogspot.com/2011/06/how-to-improve-jpa-performance-by-1825.html

由于 JPA 在 JDBC 之上运行,因此总是比完全优化的 JDBC 代码花费更多的时间。但是确实有让你使用 Java 对象而不编写 JDBC 代码的优点,并且只通过更改标志而不是重写代码来进行诸如批量写入之类的重大优化。

于 2013-04-04T13:14:39.550 回答