当前位置:七道奇文章资讯编程技术Java编程
日期:2011-03-22 16:16:00  来源:本站整理

优化Hibernate性能的几点倡议[Java编程]

赞助商链接



  本文“优化Hibernate性能的几点倡议[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:

1、针对Oracle数据库而言,Fetch Size 是设定JDBC的Statement读取数据的时刻每次从数据库中取出的记录条数,普通设置为30、50、100.Oracle数据库的JDBC驱动默许的Fetch Size=15,设置Fetch Size设置为:30、50,性能会有明显晋升,假如持续增大,超越100,性能晋升不明显,反而会损耗内存.

即在Hibernate配制文件中举行配制:

<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.Oracle9Dialect</prop>
<prop key="hibernate.show_sql">false</prop>
<!-- Create/update the database tables automatically when the JVM starts up
<prop key="hibernate.hbm2ddl.auto">update</prop> -->
<!-- Turn batching off for better error messages under PostgreSQL
<prop key="hibernate.jdbc.batch_size">100</prop> -->
<prop key="hibernate.jdbc.batch_size">50</prop>
</props>
</property>

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性能优化的几点心得.


  以上是“优化Hibernate性能的几点倡议[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
  • 优化Hibernate性能的几点倡议
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .