gpt4 book ai didi

java - 如何优化 Oracle 11g 和 Hibernate 的批量 INSERT?

转载 作者:行者123 更新时间:2023-12-01 10:41:11 24 4
gpt4 key购买 nike

我有一个可以执行大量批量插入的应用程序。我想优化应用程序以尽快完成这些任务。

我看到几个我认为与批量插入有关的 Hibernate 设置:

  • hibernate.jdbc.batch_size
  • hibernate.jdbc.batch_versioned_data
  • hibernate.jdbc.use_get_generated_keys

我不确定是否需要设置这些属性。如果我确实需要设置它们,我不确定正确的值是什么。

设置 hibernate.jdbc.batch_versioned_data 安全吗?和hibernate.jdbc.use_get_generated_keystrue对于我的 Oracle 版本?

如何选择批量大小?

我正在使用这些库的以下版本:

  • hibernate :3.2.3 GA
  • Oracle 数据库:11G
  • Oracle 数据库驱动程序:11.2.0.3.0
  • c3p0:0.9.1.2

最佳答案

hibernate.jdbc.batch_size 应将其设置为适合您要求的合理值(建议介于 5 到 30 之间)。

hibernate.jdbc.batch_versioned_data 这对于您的数据库和 JDBC 驱动程序版本安全(有关更多详细信息,请参阅 this question)。请勿不要打开此功能。否则,版本化实体的乐观锁定机制将被悄悄破坏。

hibernate.jdbc.use_get_ generated_keys 这是由一些 Hibernate id 生成器使用的,这些生成器在插入后检索 native 生成的键(当自动增量列和类似列用于主键时)一代)。如果您使用此类 id 生成器,无论是否使用批处理,都必须启用它。

此外,请确保启用 hibernate.order_inserts。有关此标志和 Hibernate 批处理的更多详细信息,请参阅 here .

关于java - 如何优化 Oracle 11g 和 Hibernate 的批量 INSERT?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34405404/

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