【问题标题】:EclipseLink 2.3 plus Oracle 11g batch-writingEclipseLink 2.3 加 Oracle 11g 批量编写
【发布时间】:2013-02-14 19:48:03
【问题描述】:

我有一个 Oracle 11g 数据库,我通过 EclipseLink 2.3 连接到它。我项目中的一个实体应该经常持久化(例如,每秒 10 次),这比其他实体要多。为了提高交易的性能,我在 pesistence.xml 中添加了以下行来激活批量写入。

     <property name="eclipselink.jdbc.batch-writing" value="JDBC"/> 

但是,我认为它将打开所有实体的批量写入。我想问一下:

1) 除了将上述行添加到我的 persistence.xml 之外,我还需要更改我的 DAO 文件中的其他内容吗?

2) 如果批量写入对其他实体有任何不利之处,我如何才能在 EclipseLink 中只为一个实体启用批量写入?

3) 我应该保留值“JDBC”还是应该在属性中切换到“Oracle-JDBC”?

【问题讨论】:

    标签: java oracle eclipselink dao batch-processing


    【解决方案1】:
    1. ,此配置指令是启用批量写入所需的一切。

    2. 不,只能为每个持久性单元设置批量写入
      理论上,您可以将持久性单元拆分为更小的部分,并仅为其中一个启用批量写入。但我不会那样做。我认为启用批量写入没有问题。

    3. 我会保留 JDBC。它是最兼容(并且可能是测试最多)的方法。
      不同之处在于 Oracle-JDBC 使用 oracle 专有的本机批处理写入,而 JDBC 依赖关于 JDBC 标准。 Oracle-JDBC 的性能可能会好一点,但很可能不值得缺点。
      但是,如果您关心插入性能,则应该测量差异。

    顺便说一句:每秒 10 个实体恕我直言,这并不是一个很大的数字。一些应用程序每秒执行 1000 次持久化(或更多)。

    【讨论】:

    • 根据this article - 让我引用:“Oracle-JDBC”使用早于 JDBC 标准 API 的 Oracle 数据库 JDBC API,现在已经过时。在 EclipseLink 2.5 之前,此选项允许在使用乐观锁定时进行批量写入,但现在常规的“JDBC”选项支持乐观锁定。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-07-09
    • 2013-09-27
    • 2021-12-17
    • 2016-01-07
    • 2016-04-28
    • 1970-01-01
    • 2016-03-28
    相关资源
    最近更新 更多