gpt4 book ai didi

java - EclipseLink 2.3 加 Oracle 11g 批量写入

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:30:18 25 4
gpt4 key购买 nike

我有一个 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”?

最佳答案

  1. 没有,这个配置指令就是你启用批量写入所需的一切。

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

  3. 我会保留 JDBC。它是最兼容(也可能是最受测试)的方法。
    不同之处在于 Oracle-JDBC 使用 oracle 专有的 native 批处理编写,而 JDBC依赖于 JDBC 标准。 Oracle-JDBC 的性能可能稍微好一点,但很可能不值得承受这些缺点。
    但是,如果您担心插入性能,则应该衡量差异。

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

关于java - EclipseLink 2.3 加 Oracle 11g 批量写入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15138603/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com