当前位置:  编程技术>java/j2ee

java优化hibernate性能的几点建议

    来源: 互联网  发布时间:2014-10-21

    本文导语:  1 <property name="hibernateProperties"> 2 <props> 3 <prop key="hibernate.dialect">org.hibernate.dialect.Oracle9Dialect</prop> 4 <prop key="hibernate.show_sql">false</prop> 5 <!-- Create/update the database tables automatically when the JVM starts up 6 <prop key="hibern...

1 <property name="hibernateProperties">
2 <props>
3 <prop key="hibernate.dialect">org.hibernate.dialect.Oracle9Dialect</prop>
4 <prop key="hibernate.show_sql">false</prop>
5 <!-- Create/update the database tables automatically when the JVM starts up
6 <prop key="hibernate.hbm2ddl.auto">update</prop> -->
7 <!-- Turn batching off for better error messages under PostgreSQL
8 <prop key="hibernate.jdbc.batch_size">100</prop> -->
9 <prop key="hibernate.jdbc.batch_size">50</prop>
10 </props>
11 </property>
Fetch Size设的越大,读数据库的次数越少,速度越快;Fetch Size越小,读数据库的次数越多,速度越慢。

  2、如果是超大的系统,建议生成htm文件。加快页面提升速度。

  3、不要把所有的责任推在hibernate上,对代码进行重构,减少对数据库的操作,尽量避免在数据库查询时使用in操作,以及避免递归查询操作,代码质量、系统设计的合理性决定系统性能的高低。

  4、对大数据量查询时,慎用list()或者iterator()返回查询结果,

  (1). 使用List()返回结果时,Hibernate会所有查询结果初始化为持久化对象,结果集较大时,会占用很多的处理时间。

  (2). 而使用iterator()返回结果时,在每次调用iterator.next()返回对象并使用对象时,Hibernate才调用查询将对应的对象初始化,对于大数据量时,每调用一次查询都会花费较多的时间。当结果集较大,但是含有较大量相同的数据,或者结果集不是全部都会使用时,使用iterator()才有优势。

  5、在一对多、多对一的关系中,使用延迟加载机制,会使不少的对象在使用时方会初始化,这样可使得节省内存空间以及减少数据库的负荷,而且若PO中的集合没有被使用时,就可减少互数据库的交互从而减少处理时间。

  6、对含有关联的PO(持久化对象)时,若default-cascade="all"或者 “save-update”,新增PO时,请注意对PO中的集合的赋值操作,因为有可能使得多执行一次update操作。

  7、对于大数据量新增、修改、删除操作或者是对大数据量的查询,与数据库的交互次数是决定处理时间的最重要因素,减少交互的次数是提升效率的最好途径,所以在开发过程中,请将show_sql设置为true,深入了解Hibernate的处理过程,尝试不同的方式,可以使得效率提升。尽可能对每个页面的显示,对数据库的操作减少到100----150条以内。越少越好。

  以上是在进行struts+hibernate+spring进行项目开发中,对hibernate性能优化的几点心得。

    
 
 

您可能感兴趣的文章:

  • java将类序列化并存储到mysql(使用hibernate)
  • Hibernate映射文件生成工具 hbm2java
  • java 框架Hibernate的generator属性的七种class介绍
  • java扩展Hibernate注解支持java8新时间类型
  • 浅析java程序中hibernate的应用总结
  • java模拟hibernate一级缓存示例分享
  • java Hibernate延迟加载
  • java Hibernate 一对多自身关联问题
  • Java开源项目Hibernate
  • 急!请问有分析java程序性能瓶颈的工具吗?例如,统计 java 程序中函数调用次数?
  • JAVA性能大观
  • Java程序性能分析工具 VisualVM
  • Java性能基准测试套件 SPECjvm2008
  • Java高性能集合类 ConcurrentLinkedHashMap
  • 性能计数器的Java本地接口 PAPI
  • 高性能Java网络框架 MINA
  • Java的开源高性能memcached客户端 XMemcached
  • 服务湍开发用linux c和java开发哪个性能更好
  • 高性能的Java 3D引擎 Xith3D
  • 高分求救?SOS 关于用mapinfo xtreme for java做gis的性能问题。
  • Java 程序的性能问题?
  • Java 应用性能监控工具 Illuminate
  • 高性能远程对象服务引擎 Hprose for Java
  • 希望有人来做一做JAVA的性能研究.
  • 高性能Java模板引擎 BSL
  • 看了半本,是关于java与xml编程的书,它用xml来代替数据库,试问,xml真的能开题数据库吗?(在性能方面)
  • 大家来讨论一下JAVA开发工具,比较一下性能
  • java字符串拼接与性能分析详解
  • 100分寻求最优化的连接oracle的java程序,请给我讲出理由,我是初学者,在做项目时不想让连接oracle影响我的程序性能
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 本来想学java但进公司第一个项目作了vb,不知道还能不能学java,各位有什么好的建议么
  • 准备学JAVA给点建议????
  • 给点学java的建议
  • 小弟初学JAVA,大家给点建议吧
  • 初学Java请给些建议。
  • 建议java程序员使用Jcreater这个软件,像vc一样有函数提示的呀,挺方便的
  • 我要学java2,因为现在java太好啦,请您提点建议。
  • 初学java,给点建议
  • 我想学Java,各位有好的建议吗?
  • 请给Java初学者一点点建议!
  • 我想学Java,给点建议
  • 强烈建议大家将写得好的好玩的java程序共享!
  • 我想学JAVA,各位高手给些建议。
  • 请高手给我一点建议,应该如何开始学Java?
  • 各位学java的都用什么数据库啊?给点建议,来者有分:)
  • 明天到北京国创科技有限公司笔试应聘java软件工程师,给点建议高分回报!!!!在线等待!!
  • 做java的朋友建议看看。很漂亮的
  • _____俺像学JAVA,请高手们提提建议!!!!!!_________
  • 昨天在书店看到一本《JAVA2入门经典》的书,老外写的,中国电力出版社出版的,有谁看过这本书,能不能给个建议评价。
  • 各位考过JAVA认证的朋友能不能给点建议?需要去参加培训么?
  • java命名空间java.sql类types的类成员方法: java_object定义及介绍
  • 我想学JAVA ,是买THINK IN JAVA 还是JAVA2核心技术:卷1 好???
  • java命名空间java.awt.datatransfer类dataflavor的类成员方法: imageflavor定义及介绍
  • 请问Java高手,Java的优势在那里??,Java主要适合于开发哪类应用程序
  • java命名空间java.lang.management类managementfactory的类成员方法: getcompilationmxbean定义及介绍
  • 如何将java.util.Date转化为java.sql.Date?数据库中Date类型对应于java的哪个Date呢
  • java命名空间java.lang.management接口runtimemxbean的类成员方法: getlibrarypath定义及介绍
  • 谁有电子版的《Java编程思想第二版(Thinking in java second)》和《Java2编程详解(special edition java2)》?得到给分
  • java命名空间java.lang.management接口runtimemxbean的类成员方法: getstarttime定义及介绍
  • 本人想学java,请问java程序员的待遇如何,和java主要有几个比较强的方向
  • java命名空间java.awt.datatransfer类dataflavor的类成员方法: stringflavor定义及介绍


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3