Hibernate性能优化初探 Hibernate性能优化初探

Hibernate性能优化初探

  • 期刊名字:黑龙江科技信息
  • 文件大小:237kb
  • 论文作者:姜惠娟,刘世贵,郭文龙
  • 作者单位:定西师范高等专科学校计算机系
  • 更新时间:2020-09-30
  • 下载次数:
论文简介

科技信息.信|息|产|业Hibernate性能优化初探姜惠娟刘世贵郭文龙(定西师范高等专科学校计算机系,甘肃定西743000)摘要:Hibemate 之所以有取代JDBC之趋势,是因为它能实现对象-关系映射、数据的持久化、强大的事务管理和支持HQL语言等功能,但是在一些大型的应用中Hibermate的效率却-直为大多程序员所诟病。针对Hibermate的低效率问题从抓取策略、缓存的应用和管理等几个方面进行优化,使hibenate在一些大型的应用中也能发挥重要的作用。关键词:性能优化;抓取策略;缓存;集合Hibernate 是对JDBC轻量级封装,因此在查询抓取(Selet feching): 查询抓取是指存设置的超时时间! 如果还设置了发呆时间的很多情况下Hibermate性能比直接使用JDBC Hibermate 通过另外一条SELECT语句来抓取当话 ,保证chass 缓存的发呆时间也大于查询的缓存取数据库要低。然而通过正确的思路方法和前对象的关联对象的方式。 这也是通过外键的存的生存时间。策略来使用Hibermate ,其效率非常接近直接使方式来执行数据库的查询。 与连接抓取的区别Collectionn 缓存和前面查询缓存的list一用JDBC的效率,甚至在-定情况下高于使用在于, 通常情况下这个SELECT语句不是立即样 ,也是只保持- -申 id,但它不会因为这个表更JDBC时的效率。Hibemate 的主要功能是实现执行的, 而是在访问到关联对象的时候才会执新过就失效,- -个clletieol缓存仅在这个col-面向对象的对象到关系数据库的转化并持久行。lection里面的元素有增删时才失效。这样有化,其性能的优化也应该从映射和持久两个过子查淘抓取(Subselect feching): 子查询抓一个问题,如果你的clctienl是根据某个字段程进行优化,在对已持久化数据的操作上主要取也是指 Hibernate通过另外-条SELECT语排序的, 当其中- -个元素更新了该字段时,导致有查询和更新,所以对hibernate的性能优化从句来抓取 当前对象的关联对象的方式。与查询顺序 改变时,lctio缓存里面的顺序没有做抓取策略、二级缓存的使用和管理、更新时采用抓取的区别在于它所采用的 SELECT语句的方更新。集合的方式三个方面来进行。式为子查询,而不是通过外连接。3采用集合方式更新1改变抓取策略可以提高其效率批量抓取是对查询抓取的优化,它会依据Hibenate 定义了三种基本类型的集合:值抓取策略(elching strategy )是指当应用程主键或者外键的列表来通过单条 SELECT语句数据集合 .- -对多关联多对多关联。根据“用于序需要在( Hibernate实体对象图的)关联关系实现管理对象的批量抓取。Hibernate 更新或删除集合行数据的主键的结间进行导航的时候, Hibenate如何获取关联对2合理使用和管理二级缓存构”。因此得到了如下的分类:有序集合类、集象的策略。抓取策略可以在O/R映射的元数据Hibernate 对数据的缓存包括两个级:- -级合(sets)、包(begs) 。中声明,也可以在特定的HQL或条件查询缓存 ,在Sesion的级别上进行,主要是对象缓所有的有序集合类 (maps, lists, aray)都(Criteria Query)中重载声明。存,以其id为主键保存对象,在Session的生命拥有一 个由 组成的主键。在Hibernate中实现了连接抓取、查询抓期间存 在;二级缓存,在SssionFactory的级别这种情况下 集合类的更新是非常高效的一主职、子查询抓取和批量抓取等抓取策略,根据不上进行, 有对象缓存和查询缓存,查询缓存以查键已经被有效的索引,因此当 Hibemate试图更同的抓取策略hibernate会分成立即抓取、延迟询条件为主键保存查询结果, 在SesionFacory新或删除- -行时,可以迅速找到该行数据。集合抓取、集合抓取、代理抓取非代理抓取、属的生 命期间存在,它底下可以使用不同的缓存”集合(es)的主键由 和其他元素字段性延迟加载。不管是采取那一种抓取策略,可以类库。 默认情况下Hibernate只启用一级缓存,构成。 对于有些元素类型来说, 这很低效,特把抓取过程分离成两个子过程一-确定何时抓 通过正确地使用 级缓存,往往可以获得意想、别是组合元素或者大文本、 大二进制字段;数取和确定如何去抓取,对于改变抓取策略来提不到的性能。据库可能无法有效的对复杂的主键进行索引。高效率应该从这两个子过程人手。缓存可以简单的看成- 个Map,通过主键另一方面,对于-对多、多对多关联,特别1.1何时去抓取在缓存里面找对应的值。下面通过Class .query、是合 成的标识符来说,集合也可以达到同样的在Hibermate中提供了立即抓取和延迟抓cllecion 利用二级缓存来进行优化说明。Class高效性能。取,立即抓取就是当宿主被加载时,关联.集合对二级缓存的利用:对于一 条记录,是根据主键映射定义了代理键,因此它总是可或属性被立即抓取,延迟抓取则是直到应用程ID 来找的,缓存的主键就是ID,对应的值是一以很高效的被更新。 事实上,0.00.使得在一个长度为20的集合类中新增加了一个元县人,讲师, 学士,主要研究方向:网络技术。|JfI,C,O.0≤K, +K.|q, Vr∈[0,T]。定义1.1给定∈L(0.F.P.R)及消费过素,然后再删除两个。Hibernate 会安排- -条刘世贵(1974-),男,甘肃省渭源县人,讲程CED .假设f和g满足条件(H1)-(H3),若存INSERT语句和两条DELETE语句(除非集合师, 学士,主要研究方向:软件技术。类是一个bag)。但是, 假设删除了18个数据,郭文龙(1979-),男,甘肃省镇原县人,讲师,在(V,Z)∈S(O,T];R)XM,}0T";R);a.s.满足:只剩下2个,然后新增3个。则有两种处理方学士.. 主要研究方向:软件开发过程、软件测v,=∈+S,' f(.C.V,Z,Nds+ S, 8g.v.z.,dB.-S,' z.dW.式:逐- -的删除这18个数据,再新增三个和删 试、软件架构。0SIST ,则称0?)为消费过程c的递归效用过程; .除整个集合类(只用一句DELETE语句),然后基金项目:甘肃省教育科学“十一五"规划称V。为消费过程C的递归效用。增加5个数据。这两种方法的H中国煤化工8)若映射U:D→R,使得U(C)=V则称U为动选择,但可以强制使用第二种递归效用函数。取消原来的整个集合类(解除其HCNMHG定义1.2 U为效用函数,若VCED, U(C)S返回一个新的实例化的集合类,只包含需要的元素,有些时候这是非常有用的。U(EIC]) ,则称为风险厌恶。-173-

论文截图
版权:如无特殊注明,文章转载自网络,侵权请联系cnmhg168#163.com删除!文件均为网友上传,仅供研究和学习使用,务必24小时内删除。