如何使eclipselink在批量插入方面表现更好

时间:2013-04-03 17:04:45

标签: performance jpa jdbc eclipselink

我正在测试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链接更快?

1 个答案:

答案 0 :(得分:1)

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

您使用序列预分配吗?如果没有,则不会进行任何批处理(检查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代码,并且仅通过更改标志来进行批量写入等主要优化,而不是重写代码。