`
hzh0725
  • 浏览: 82269 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

关于hibernate batchsize一些分析

    博客分类:
  • java
阅读更多

 

关于hibernate batchsize一些分析:

 

batchsize是针对jdbc的PreparedStatement 接口,跟我们想象中的Sql语句的一批处理没有关系,所有我有时候觉得这个名字有点怪,  而且hibernate是jdbc的封装,jdbc没有这样的功能,当然hibernate也没有

 

下面是hibernate一些常用的行为

  1. session的save,delete,update这些操作只是把这些操作放到一个叫ActionQueue中去
  2. flush是去执行actionqueue中的相关的action
  3. batchsize是针对PreparedStatement接口,只发生在flush过程中   如果一次flush过程中有不同的sql,比如save,update,delete,hibernate时,hibernate会比较当前的sql跟前一个sql是否相同,不同马上运行前一个sql命令,如果相同,就运行 ps.addBatch(),当到达batchsize,就运行ps.executeBatch()

 

所以在很多时候,一个批量的操作时候,当达到batchsize,就运行一次flush,这样就会减少hibernate跟数据库交互的次数。

分享到:
评论

相关推荐

    hibernate-batch-size-test:Hibernate hibernate.jdbc.batch_size 测试

    4. 分析结果:比较不同`batch_size`值下的性能,找出最佳的批处理大小。同时,也要注意数据库性能和内存消耗,避免过大批次导致的问题。 通过这样的测试,你可以了解到批处理大小对应用程序性能的具体影响,并据此...

    优化Hibernate性能的几点建议

    此外,还可以通过分析Hibernate的性能指标来调整诸如`hibernate.jdbc.batch_size`等参数,以达到最佳性能平衡。 总之,通过上述几个方面的优化措施,可以显著提高基于Hibernate构建的应用程序的性能。在实际应用中...

    关于hibernate的批处理

    2. **Hibernate批处理设置**: Hibernate通过`hibernate.jdbc.batch_size`配置属性来设定批处理大小,例如设置为20表示每次提交20个SQL语句。默认值通常较小,需要根据实际需求进行调整。 3. **Flush模式**: ...

    Hibernate 参数配置详解

    例如,通过设置合适的 `hibernate.max_fetch_depth` 和 `hibernate.default_batch_fetch_size` 可以显著提升应用性能;而启用 `hibernate.generate_statistics` 则有助于我们更好地监控和分析应用性能瓶颈。此外,...

    Hibernate参数设置一览表

    10. **hibernate.jdbc.batch_size** 设置批量插入或更新的大小。增加这个值可以提高性能,但过大的批量可能会消耗更多内存。 11. **hibernate.connection.pool_size** 数据库连接池的大小,用于管理数据库连接,...

    hibernate 配置属性参数详情(全)

    2. **hibernate.jdbc.batch_size**:用于批量更新,推荐值通常在5到30之间。 3. **hibernate.jdbc.batch_versioned_data**:开启后,Hibernate会为自动版本化的数据使用批量DML操作。 4. **hibernate.jdbc.factory...

    Hibernate可选配置大全

    hibernate.jdbc.batch_size - **功能**:控制批量更新的规模。 - **取值**:推荐范围`5`至`30`。 ##### 3. hibernate.jdbc.batch_versioned_data - **功能**:启用批量更新后的行数反馈。 - **取值**:`true`或`...

    Hibernate配置文件

    - `hibernate.jdbc.batch_size`: 批量处理的SQL语句数量,提高性能。 - `hibernate.max_fetch_depth`: 最大级联加载深度,防止无限递归问题。 - `hibernate.generate_statistics`: 是否开启统计信息收集,有助于...

    hibernate.cfg.xml中配置信息详解

    Hibernate.jdbc.batch_size 属性用于控制 Hibernate 的批量更新。如果设置为非零值,Hibernate 将使用 JDBC2 的批量更新。 hibernate.jdbc.batch_versioned_data Hibernate.jdbc.batch_versioned_data 属性用于...

    HIBERNATE检索策略

    HIBERNATE提供了多种抓取策略,包括基于单端代理和集合代理的批量抓取,以及通过`batch_size`属性实现的批量加载策略。下面我们将对这些策略进行详细的阐述。 ### 一、单端代理的批量抓取 #### 1. 默认抓取策略...

    hibernate使用手册

    - 通过设置 `hibernate.jdbc.batch_size` 参数来控制批处理大小。 #### 六、常见问题及解决方案 1. **无法建立数据库连接**: - 确保数据库服务器正在运行且可以通过网络访问。 - 检查 `hibernate.cfg.xml` 中...

    hibernate连接各种数据库的配置

    - **分页设置**:`<property name="jdbc.fetch_size">50</property>` 和 `<property name="jdbc.batch_size">30</property>`,分别控制每次查询的记录数和批量更新的数量。 - **驱动设置**:`...

    Hibernate_demo

    4. 对于大数据量的操作,考虑使用批处理,如Session的flushMode和 batchSize属性。 总结,"Hibernate_demo"是一个生动的实例,展示了如何在实际项目中运用Hibernate5。通过分析这个项目,我们可以更好地理解和掌握...

    Hibernate 参数设置一览表(强烈推荐)

    12. **hibernate.jdbc.batch_size**:预设的批量插入或更新操作的SQL语句数量。 13. **hibernate.order_updates** 和 **hibernate.order_inserts**:如果设置为`true`,Hibernate将按依赖关系排序更新和插入,避免...

    Middlegen和Hibernate extensions

    例如,如果要使用延迟加载批处理,需要在Hibernate配置中指定batch_size属性,并在查询时使用批处理方法。 总的来说,Middlegen和Hibernate Extensions是Hibernate生态中的两个重要补充,它们帮助开发者更高效地...

    Hibernate性能优化

    Batch Size是指在执行批量操作时,Hibernate一次提交的SQL语句数量。合理的Batch Size可以减少数据库的网络传输次数,从而提高应用性能。 - 默认值为20,可根据实际情况调整; - 对于PostgreSQL,建议关闭批量处理以...

    hibernate3.3.rar

    1. 避免N+1查询问题,通过批处理(batch-size)或集合初始加载策略优化。 2. 使用二级缓存,减少对数据库的访问。 3. 索引优化,合理设计数据库索引,提升查询效率。 4. 分析和调整HQL或SQL语句,减少不必要的计算和...

    Hibernate 3.1.2 参考手册

    - 使用`setBatchSize()`方法可以提高插入或更新的效率。 ```java session.setBatchSize(100); // 每次提交100条记录 ``` **2. 懒加载与立即加载** - 懒加载(Lazy Loading)是指在真正需要数据的时候才加载...

    Hibernate使用技巧汇总

    - 如果启用了延迟加载,但在某个时刻需要加载所有相关对象时,可以通过`fetchSize`和`batchSize`控制批量加载的数量。 #### 十三、Spring事务管理 - **Spring事务管理**: - 推荐使用Spring的容器管理事务,以...

Global site tag (gtag.js) - Google Analytics