`
article2008
  • 浏览: 71768 次
  • 性别: Icon_minigender_1
  • 来自: 合肥
社区版块
存档分类
最新评论

Hibernate性能分析点滴

阅读更多
hibernate.jdbc.batch_size
这个属性的使用场合是批量导入数据或批量删除时使用.其实就是相当于使用PreparedStatement.executeBatch()方法..将数个sql语句一起提交获得性能上的提高. hibernate.jdbc.batch_size在hibernate.cfg.xml中设定.
                                <prop key="hibernate.show_sql">false</prop>
<prop key="hibernate.jdbc.fetch_size">32</prop>
<prop key="hibernate.jdbc.batch_size">16</prop>
<prop key="hibernate.max_fetch_depth">1</prop>

批量导入数据代码.

//        for(int i=0;i<16;i++ ){
//            UserInfo u = new UserInfo();
//            u.setUserName("www"+ i);
//            u.setPassword("123");
//            session.save(u);
//            if (i%16==0){
//                session.flush();//每进行完25条时flush session和清空缓存.
//                session.clear();//清空缓存
//            }
//
//        }


//批量更新
Connection con=getSession().connection();
PreparedStatement stmt = con.prepareStatement("update Order_Detail set     quantity=? where order_id = ? and Product_Id = ? and  Color_ID =?");
for(int i=0;i<quantity.length;i++){
stmt.setFloat(1, NumberUtil.parseFloat(quantity[i], 0));
stmt.setInt(2, NumberUtil.parseInt(orderId, 0));
stmt.setInt(3, NumberUtil.parseInt(productId[i], 0));
stmt.setInt(4, NumberUtil.parseInt(colorId[i], 0));
stmt.addBatch();
}
stmt.executeBatch();
con.close();
}


选择jdbc方式比用Hibernate批量跟新明显快,这在理论上已经证明,下面在利用jdbc方式的同时设置批量跟新的数据量,性能上有所提高,但具体的设置值视具体数据
Connection con=getSession().connection();
PreparedStatement stmt = con.prepareStatement("update Order_Detail set quantity=? where order_id = ? and Product_Id = ? and  Color_ID =?");
        Long begin = System.currentTimeMillis();
for(int i=0;i<quantity.length;i++){
stmt.setFloat(1, NumberUtil.parseFloat(quantity[i], 0));
stmt.setInt(2, NumberUtil.parseInt(orderId, 0));
stmt.setInt(3, NumberUtil.parseInt(productId[i], 0));
stmt.setInt(4, NumberUtil.parseInt(colorId[i], 0));
stmt.addBatch();
   if(i%80 == 0){//执行物理批量插入
                        stmt.executeBatch();
                        con.commit();
                  }
}
stmt.executeBatch();
con.commit();
con.close();
Long end2 = System.currentTimeMillis();
log.info("***************引入batch的批处理跟新时间*****:"+(double)(end2 - begin));
分享到:
评论

相关推荐

    hibernate性能测试代码

    本话题将深入探讨“Hibernate性能测试代码”,以帮助我们理解如何有效地评估和优化Hibernate在实际应用中的表现。 首先,性能测试是软件开发过程中的关键环节,它旨在确定系统的响应时间、吞吐量和资源利用率等指标...

    Hibernate性能优化研究.pdf

    ### Hibernate性能优化研究 #### 一、引言 随着企业级应用的发展,高效的数据持久化技术成为了提升系统性能的关键因素之一。Hibernate作为一种流行的面向Java环境的对象关系映射(Object-Relational Mapping,简称...

    hibernate性能优化

    珍藏的hibernate性能优化,如果对hibernate进行优化,很详细,是工作和面试的好助手

    Hibernate性能优化:一级缓存

    本文将深入探讨Hibernate性能优化中的一个重要概念——一级缓存,并结合给出的压缩包文件“hibernate_cache_level1”,来详细解析一级缓存的工作原理及其优化策略。 一级缓存是Hibernate内置的一种缓存机制,它存在...

    Hibernate性能优化

    《Hibernate性能优化》 在Java开发中,Hibernate作为一款强大的对象关系映射(ORM)框架,极大地简化了数据库操作。然而,随着应用规模的扩大,性能问题逐渐显现,因此对Hibernate进行性能优化变得至关重要。本篇...

    优化Hibernate性能的几点建议

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

    hibernate性能:性能、规模、风险 初评

    本文将探讨Hibernate在不同场景下的性能特点、应用规模及潜在的风险,并尝试分析这些问题背后的原因。 #### 二、Hibernate性能特点 1. **缓存机制**:Hibernate内置了一套完整的缓存体系,包括一级缓存、二级缓存...

    hibernate源码分析一[启动过程]

    标题:hibernate源码分析一[启动过程] 在深入探讨Hibernate框架的启动过程之前,我们首先需要了解几个核心的概念和类,它们是Hibernate启动流程的基石。 ### 1. 关键类与接口 #### Environment类 `Environment`类...

    hibernate源码分析过程

    Hibernate 源码分析过程 Hibernate 是一个基于 Java 的 ORM(Object-Relation Mapping)框架,允许开发者使用面向对象的方式与关系数据库交互。在本文中,我们将对 Hibernate 的源码进行深入分析,并探讨其核心特性...

    如何提高hibernate性能

    【提高Hibernate性能】 在开发大型企业级应用时,ORM框架如Hibernate在处理大量数据时可能会出现性能瓶颈。针对这种情况,优化Hibernate的配置和使用策略至关重要。以下是一些提高Hibernate性能的关键点: 1. **...

    Ibatis和Hibernate的分析比较

    2. 性能:由于Ibatis允许直接编写SQL,所以在某些情况下,其性能可能优于Hibernate,尤其是在复杂的查询和事务处理上。 3. 学习曲线:Hibernate的全面性使得学习成本较高,而Ibatis的“半自动化”特性使得学习相对...

    hibernate性能优化.doc

    - 开启`show_sql`,观察和分析Hibernate生成的SQL,找出性能瓶颈。 5. **二级缓存**: - 映射文件中配置二级缓存策略,如查询缓存、实体缓存,可以提高数据读取速度。 - 管理一级缓存,避免过多的对象驻留在内存...

    Hibernate性能调优

    《Hibernate性能调优》 在Java企业级应用开发中,Hibernate作为一款强大的对象关系映射(ORM)框架,被广泛用于数据库操作。然而,如果不合理地使用或配置,Hibernate可能会导致性能瓶颈。本文将深入探讨如何对...

    Hibernate性能优化共9页.pdf.zip

    《Hibernate性能优化共9页.pdf》的压缩包文件聚焦于Java开发中的一个重要框架——Hibernate的性能调优。Hibernate作为一款强大的对象关系映射(ORM)框架,极大地简化了数据库操作,但同时也可能带来性能问题。以下...

    hibernate源码分析一_启动过程_

    **hibernate源码分析:启动过程** 在深入探讨Hibernate启动过程之前,首先需要了解Hibernate是什么。Hibernate是一个开源的对象关系映射(ORM)框架,它为Java开发人员提供了一种在Java应用程序中操作数据库的方式...

    提升Hibernate性能的魔方——IronTrack SQL.pdf

    IronTrack SQL不仅仅是一个监控工具,它还提供了专门的工具来帮助开发者分析Hibernate的性能。这些功能可以帮助开发者定位性能瓶颈,比如查询效率低下、不必要的数据库交互等问题,从而进行针对性的优化,提升应用的...

    Hibernate 性能优化

    ### Hibernate 性能优化 #### 一、引言 Hibernate 是一款非常强大的对象关系映射(ORM)框架,它能够简化 Java 应用程序与数据库之间的交互过程。然而,对于初次接触 Hibernate 的开发者来说,可能会遇到性能方面...

Global site tag (gtag.js) - Google Analytics