`
webook_java
  • 浏览: 58997 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类

Hibernate性能优化策略

阅读更多
1)缓存机制
a)基本缓存——Session缓存(一级缓存)
Session中保存了一个Map(id-->PO)
PO(持久化对象)
b)二级缓存(全局缓存)——SessionFactory
1、过度使用的问题:内存会被过度占用,
会导致系统性能急剧下降。
2、使用条件:
i)缓存的数据比较稳定(变动不频繁)(如 部门)
ii)缓存的数据使用比较频繁(缓存的命中率)
c)启用二级缓存
在“hibernate.cfg.xml”的<session-factory>中加入属性——
<property name="hibernate.cache.provider_class">
org.hibernate.cache.OSCacheProvider
</property>
d)使用二级缓存
缓存方式:read-only;read-write
两个级别——类级别和集合级别
使用语法:在<class>或<set>(集合)里面加入——
<cache usage="read-only | read-write" />

1)read-only (只读)
一般包括系统参数
<class name="SystemParameter" table="t_syspara" mutable="false">
<cache usage="read-only"/>
<id name="id" type="integer" column="id">
<generator class="native" />
</id>
</class>

2)read-write (可写)
<class name="Dept" table="t_dept">
        <cache usage="read-write" />
       
        <set name="emps">
        <cache usage="read-write" />
        ...
        </set>
    </class>

2)延缓加载
a、在绝大多数情况下是很有用的
如 order(items)
b、取消延缓加载的方法
i)<class  ...  lazy="false" />
ii)关联映射中,关联的地方用“fetch="join"”
<many-to-one name="dept" class="Dept" column="dept_id" fetch="join"/>


3)批量抓取
"batch-size=10"
用在<class>或<set>(集合)
a、class
用Emp来抓取Dept
<class name="Dept" batch-size="10" >

b、set
用Order来抓取Items
<class name="Order"...>
...
<set ... batch-size="3">
</set>
</class>
分享到:
评论

相关推荐

    Hibernate性能优化研究.pdf

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

    Hibernate性能优化

    《Hibernate性能优化》 ...以上是Hibernate性能优化的一些核心点,实践中还需要结合具体项目进行调整和测试,找到最适合的优化策略。学习和理解这些知识点,有助于开发出更高效、更稳定的Java应用程序。

    hibernate性能优化方案

    综上所述,Hibernate性能优化涉及多个层面,包括但不限于数据库设计、HQL编写、API选择、配置参数调整、缓存管理、延迟加载以及事务控制策略等。通过对这些方面的综合考量和优化,可以极大地提升Hibernate应用程序的...

    Hibernate性能优化:一级缓存

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

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

    "Hibernate性能优化共9页.pdf.zip" 这个文件标题表明了内容专注于Hibernate框架的性能优化,暗示我们将探讨如何提升使用Hibernate进行数据库操作时的效率。通常,性能优化涉及减少延迟、提高吞吐量、降低资源消耗等...

    hibernate性能优化.doc

    以下是一些关于Hibernate性能优化的关键点: 1. **数据库优化**: - **硬件优化**:磁盘I/O是数据库性能的关键,选择高速度、低寻道时间的磁盘可以显著提升读写速度。 - **配置文件优化**:针对MySQL,优化`my....

    Hibernate3性能优化 Hibernate_regerence3.12

    的效率低于直接JDBC存取,然而,在经过比较好的性能优化之后,Hibernate的性能还是让人相当满意的, 特别是应用二级缓存之后,甚至可以获得比较不使用缓存的JDBC更好的性能,下面介绍一些通常的 Hibernate的优化策略...

    Struts Spring Hibernate性能优化

    在进行大型项目开发时,性能优化是至关重要的,特别是对于基于SSH(Struts、Spring、Hibernate)这样的企业级框架的应用。SSH性能优化主要是针对Struts的MVC处理、Spring的依赖注入以及Hibernate的对象关系映射进行...

    Hibernate缓存,性能优化

    ### 性能优化策略 #### 合理利用缓存策略 - **一级缓存优化**:确保每个业务逻辑单元只在一个Session内完成,避免不必要的Session开启和关闭,减少一级缓存的刷新次数,从而提高性能。 - **二级缓存配置**:根据...

    hibernate-性能优化

    【标签】:hibernate, 性能优化 【正文】: 1. **数据库设计调整**: - **降低关联的复杂性**:减少多对多关联,避免过度嵌套的对象关系。 - **避免联合主键**:联合主键可能导致额外的性能损失,尝试使用单独的...

    hibernate性能优化[参考].pdf

    以下是对《hibernate性能优化[参考].pdf》内容的详细解读: 1. **数据库优化**: - **物理硬件优化**:关注磁盘的IO性能,因为数据库读写频繁,磁盘的寻道能力直接影响数据访问速度。 - **MySQL配置优化**:通过...

    Hibernate性能优化:二级缓存

    二级缓存是Hibernate性能优化的重要手段,通过合理配置和使用,可以显著减少数据库访问,提高系统响应速度。但同时,需要注意缓存的副作用,如数据一致性、并发控制等问题。在实际应用中,需要结合业务场景和性能...

    hibernate性能测试代码

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

    Hibernate 性能优化

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

    Hibernate Quickly

    8. **性能优化**:探讨Hibernate性能优化策略,包括延迟加载(Lazy Loading)、批处理(Batch Processing)、缓存管理以及如何避免N+1查询问题。 9. **JPA支持**:由于Hibernate也是Java Persistence API(JPA)的...

Global site tag (gtag.js) - Google Analytics