- 浏览: 158623 次
- 性别:
- 来自: 厦门
文章分类
- 全部博客 (210)
- java (44)
- javascript (5)
- 网摘 (21)
- 程序人生 (19)
- hibernate (21)
- spring (7)
- struts (1)
- jquery (2)
- mssql (3)
- mysql (3)
- oracle (7)
- 学习日记 (10)
- PowerDesigner (1)
- android (4)
- 调试 (1)
- tomcat (3)
- webapp (1)
- context (2)
- jsp (2)
- 学习 (18)
- 态度 (4)
- 坚持 (4)
- jsf (1)
- ui (1)
- css (1)
- seam (0)
- 转载 (5)
- JNDI (1)
- 创业 (1)
- 公司 (1)
- 方向 (1)
- ETL (1)
- Datastage (1)
- 数据整合 (1)
- 心情,感触 (1)
- 开发 (2)
- 测试 (1)
- 需求 (1)
- 湿身 (1)
- 网购,分类 (1)
- 驾校,转载 (1)
- 中秋,露营 (1)
- 域名 (1)
- 空间 (1)
- 网站程序 (1)
- SolrCloud (1)
- Solr (6)
- 全文库 (1)
- HBase (1)
- Hadoop (1)
- 网络应用 (1)
- 数据结构 (1)
- NoSQL (1)
- jQueryEasyUI (1)
- 面试 (1)
- 三十六计 (1)
- S2S3H4 (1)
- jar (1)
- war (1)
- web 项目 (1)
- Subversion (1)
- TortoiseSVN (1)
- MyEclipse (1)
- eclipse svn插件 (1)
- SQL2005 (1)
- ASP (1)
- 笔记 (2)
- 虚拟器、centOS、jdk、tomcat、nginx (1)
- memcached (1)
- nginx (1)
- telnet (1)
- nfs (1)
- zookeeper (2)
- window (1)
- linux (3)
- cronolog (1)
- web (1)
- mybatis (3)
- 设计模式 (1)
- 测试覆盖率 (1)
- EclEmma (1)
- tomcat7 (1)
- sore (1)
- 时间 (1)
- fackbook (0)
- facebook (1)
- IK (2)
- PKUSUMSU (1)
- openoffice (1)
- pdf (1)
- memcache (1)
- 动态词库 (1)
- 动态同义词 (1)
- centos7.3 (2)
- maven (4)
- 111 (0)
- nexus (2)
- 23种设计模式 (1)
- springboot (1)
- shiro (1)
- redis (1)
- rabbitMQ (1)
- native (1)
- dll (1)
- jasperReports (1)
- ireport (1)
最新评论
-
zhongfenglin:
学车的经历 -
Tiny_小小:
...
网购的选择 -
jrjr200411:
楼主写的好!
面对大公司和小公司的选择 -
feelboy:
说的很好。
每周四十小时,你有多少是在为自己干活?
近日为是否在项目中使用Hibernate进行大数据量的性能测试,有一些总结,
1) 在处理大数据量时,会有大量的数据缓冲保存在Session的一级缓存中,这缓存大太时会严重显示性能,所以在使用Hibernate处理大数据量的,可以使用session.clear()或者session. Evict(Object) 在处理过程中,清除全部的缓存或者清除某个对象。
2) 对大数据量查询时,慎用list()或者iterator()返回查询结果,
1. 使用List()返回结果时,Hibernate会所有查询结果初始化为持久化对象,结果集较大时,会占用很多的处理时间。
2. 而使用iterator()返回结果时,在每次调用iterator.next()返回对象并使用对象时,Hibernate才调用查询将对应的对象初始化,对于大数据量时,每调用一次查询都会花费较多的时间。当结果集较大,但是含有较大量相同的数据,或者结果集不是全部都会使用时,使用 iterator()才有优势。
3. 对于大数据量,使用qry.scroll()可以得到较好的处理速度以及性能。而且直接对结果集向前向后滚动。
3) 对于关联操作,Hibernate虽然可以表达复杂的数据关系,但请慎用,使数据关系较为简单时会得到较好的效率,特别是较深层次的关联时,性能会很差。
4) 对含有关联的PO(持久化对象)时,若default-cascade="all"或者 “save-update”,新增PO时,请注意对PO中的集合的赋值操作,因为有可能使得多执行一次update操作。
5) 在一对多、多对一的关系中,使用延迟加载机制,会使不少的对象在使用时方会初始化,这样可使得节省内存空间以及减少数据库的负荷,而且若PO中的集合没有被使用时,就可减少互数据库的交互从而减少处理时间。
6) 对于大数据量新增、修改、删除操作或者是对大数据量的查询,与数据库的交互次数是决定处理时间的最重要因素,减少交互的次数是提升效率的最好途径,所以在开发过程中,请将show_sql设置为true,深入了解Hibernate的处理过程,尝试不同的方式,可以使得效率提升。
7) Hibernate是以JDBC为基础,但是Hibernate是对JDBC的优化,其中使用Hibernate的缓冲机制会使性能提升,如使用二级缓存以及查询缓存,若命中率较高明,性能会是到大幅提升。
8) Hibernate可以通过设置hibernate.jdbc.fetch_size,hibernate.jdbc.batch_size等属性,对Hibernate进行优化。
发表评论
-
Hibernate工作原理
2019-05-14 20:00 396hibernate 简介:hibernate是一个开源框架, ... -
SSH整合的几种最常见方式 .
2012-03-22 12:00 1237Spring实例Action的两种方式:1、Delegatin ... -
Hibernate Annotation笔记
2011-11-23 23:58 647(1)简介:在过去几年里,Hibernate不断发展,几乎 ... -
加速你的Hibernate引擎
2010-11-08 19:35 729参考(上、下): http://blog.csdn.net/ ... -
hibernate各种属性配置
2010-10-29 10:32 1028hibernate.dialect 一个Hibern ... -
hibernate的映射
2010-10-24 17:41 732集合映射 public class CollectionMa ... -
多对多
2010-10-24 17:11 722多对多单向 User(多)对多(Role),一般都是通过中间 ... -
多对一
2010-10-24 17:00 851多对一单向 User(多)对Group(一),在User实体 ... -
一对多
2010-10-24 16:51 745一对多单向 定义两个实体类,及两个映射文件 一对多一的一端 ... -
一对一
2010-10-24 16:36 688一对一单向 定义两个类,两个映射文件一个工具类生成表 pu ... -
hibernate的抓取策略
2010-10-24 16:08 747hibernate抓取策略(单端代理的批量抓取) 保持默认, ... -
hibernate的继承
2010-10-24 15:54 699每棵继承树映射成一张表 1、理解如何映射 因为类继承树肯定 ... -
hibernate的锁
2010-10-24 15:48 779乐观锁 大多数基于数据版本记录机制(version)实现,一 ... -
hibernate的lazy
2010-10-24 15:44 813hibernate lazy策略可以使用在: * <cl ... -
hibernate的缓存
2010-10-24 15:33 1004hibernate一级缓存 一级缓存很短和session的生命 ... -
session管理
2010-10-24 15:01 853了解Hibernate中CRUD操作 了解get和load的 ... -
hibernate查询语言hql
2010-10-24 13:46 1126在hql中关键字不区分大 ... -
hibernate基本配置
2010-10-24 13:22 8201.开发环境Window 2.开发工具MyEclispe5. ... -
Hibernate 各种数据库的配置
2010-09-13 10:33 9451. MySql连接配置 MySql数据库的hiber ... -
hibernate学习
2009-07-21 13:54 931hibernate多对多的解决Hibernate多对多的例子 ...
相关推荐
- **持久化性能**:保存、更新和删除操作的效率,尤其是在大数据量的情况下。 - **内存使用**:检查内存泄漏和内存占用情况,避免因为过度占用内存导致系统变慢或崩溃。 - **事务性能**:衡量事务处理能力,特别是...
配置Hibernate数据源是一项基础而重要的任务,涉及在Java应用程序中集成和使用Hibernate框架以及MySQL数据库。以下内容旨在详细介绍如何在MyEclipse开发环境中配置Hibernate数据源,同时解释相关概念和步骤。 首先...
**hibernate测试** ...通过以上内容的学习和实践,读者将能够熟练掌握Hibernate的使用,并能进行有效的测试,确保项目中的数据访问层稳定可靠。同时,欢迎读者们分享自己的经验和评价,共同提升对Hibernate的理解。
4. **懒加载与立即加载**:Hibernate的懒加载机制可以推迟关联对象的加载,减少初始化时的数据量。但过度依赖懒加载可能导致N+1查询问题,因此需要合理设计实体关系和加载策略。 5. **预加载与子查询**:预加载...
通过这种方式,开发者可以使用面向对象的方式来处理数据,而无需编写大量的SQL语句。 在租房系统中,可能会有如下的实体类:`User`(用户)、`Property`(房源)、`Booking`(预订)、`Review`(评价)等。每个类都...
- **限制结果集大小**:使用 `LIMIT` 或 `FIRST` 来控制返回的数据量,避免拉取大量无用数据。 3. **API 正确使用**: - **集合与查询 API**:根据业务需求选择 List、Set、Map 等集合类型,以及 Query、Criteria...
随着软件开发的不断进步和技术的发展,越来越多的企业级应用需要高效地管理和访问大量数据。为了更好地满足这一需求,许多开发团队选择了使用ORM(对象关系映射)工具来简化数据库操作。其中,Hibernate作为一款流行...
- **持续集成测试**:在开发流程中集成性能测试环节,确保每次代码提交都不会引入性能退化的问题。 综上所述,Hibernate缓存机制是提升应用性能的重要手段,通过合理配置缓存策略、优化查询方式、管理数据库连接...
在进行单元测试或集成测试时,合理配置数据源能够显著提高测试效率,减少不必要的等待时间。 #### 三、配置方法概述 根据描述中的内容,我们可以将Hibernate中配置数据源的方式大致分为三种:直接在Hibernate配置...
在本项目中,"使用springmvc+hibernate完成增删改查"意味着开发者已经配置好了SpringMVC和Hibernate的环境,能够通过这两个框架进行数据操作。数据无需创建自动生成,可能指的是使用了Hibernate的自动建表功能,或者...
在这个“hibernate 单元测试批处理代码”项目中,我们将深入探讨如何使用Hibernate进行单元测试,并实现批处理操作,特别针对MySQL数据库。 首先,让我们理解Hibernate单元测试的基础。单元测试是针对软件中的最小...
5. 测试与监控:为了确保双数据源的正确性和性能,需要进行充分的单元测试和集成测试,同时利用SpringBoot的Actuator模块进行监控,了解数据源的使用情况。 6. 安全性考虑:在实际部署中,需要确保数据库连接的安全...
大规模数据操作时,如大数据量的查询或更新,可能需要优化HQL语句,避免全表扫描,或者考虑使用更底层的JDBC进行定制化操作。 3. **风险评估**:使用Hibernate可能导致的风险包括数据一致性问题(如事务管理不当)...
Hibernate是一个开放源代码的对象关系映射(ORM)框架,它为Java开发人员提供了在数据库上操作对象的便捷方式,消除了大量低级JDBC代码,简化了数据访问层的工作。 【描述】提到"Y2Hibernate 自己写的 内部测试 ...
- **懒加载**:使用`@ManyToOne`、`@OneToOne`等关联注解时,可以配置为懒加载,避免加载大量无关数据。 - **级联操作**:通过`CascadeType`设置级联操作,比如在父实体删除时,可以自动删除所有子实体。 11. **...
- 对于大数据量的查询,可考虑使用分页查询,减轻内存压力。 3. **实体设计与映射优化**: - 避免过多的一对多关系,过多的一对多可能导致大量的数据库连接和数据加载,影响性能。 - 使用懒加载(Lazy Loading)...
- "04-2018-7-8-Hibernate-functiongtest.pptx"可能是关于函数测试和Hibernate的结合,讲解如何使用Hibernate进行功能测试。 - "2018-7-26-Hibernate-加载策略.pptx"可能涉及了Hibernate的对象状态管理,包括延迟...
2. **设计持久化类**:创建代表数据库表的Java类,使用Hibernate注解或XML配置文件进行映射。 3. **映射配置**:编写Hibernate的配置文件(hibernate.cfg.xml),指定数据库连接参数等。 4. **开发应用程序**:...
Hibernate是一个流行的Java对象关系映射(ORM)工具,它允许开发人员使用面向对象的方式来处理数据库交互,而无需编写大量的SQL代码。这个压缩包可能包含了一个或多个示例项目,展示了如何在实际开发中运用Hibernate...