hibernate性能_改善Hibernate应用程序性能的7种方法

hibernate性能

添加字幕文本 Hibernate是将Java Web应用程序与SQL数据库集成的好工具,但是当应用程序的响应时间开始显着增加时,我们应该怎么做? 当我们怀疑应用程序是否会随着客户群的增长而扩展时,我们该怎么办?

在花大价钱托管或重写代码之前,请考虑分析和改进Web应用程序的这7个方面。

#1调整JVM内存设置

JVM允许我们配置它将分配给运行我们的应用程序的内存量。 如果未正确配置内存设置(堆大小,perm gen大小等),则垃圾收集进程运行的频率可能会过高,这将导致CPU使用率激增并停止执行。

#2优化JDBC数据源和Hibernate的配置

在这些配置中,我们可以定义Hibernate和底层JDBC层的一般行为。 在应用程序此部分中所做的更改(池大小,顺序等)可能会影响每个SQL查询和更新。 因此,正确设置这些设置对于实现应用程序的最佳性能至关重要。 在这里还值得一提的是Hibernate 2级缓存。 当应用程序一遍又一遍运行相同的查询时,缓存最多可以节省99%的数据库往返次数。 市场上有几种可以用作二级缓存提供程序的缓存框架,其中最著名的是EHCache , Oracle Coherence , Infinispan和Hazelcast 。

#3优化Hibernate映射

无论我们是使用批注还是XML文件来配置Hibernate映射,几行更改(延迟加载,批处理等)都可以大大提高应用程序的性能。 这些映射直接影响Hibernate将生成和执行哪些SQL语句。 在大多数情况下,使用默认映射配置可能效果很好,但是针对关键SQL查询和更新对其进行优化可能会大大增加与数据库的往返次数以及执行所花费的实际时间。

#4优化Hibernate会话管理

在处理事务时,关键是要了解不同的隔离级别和传播类型,并将只读和读写DB操作拆分为单独的事务。

#5添加缺少的数据库索引

有几种方法可以识别最消耗资源SQL语句,但是一旦有了它们的列表,添加必要的索引就变得很简单。 没有这些索引,数据库可能必须逐行读取整个数据库表。 这是数据库中最耗费资源的操作之一,绝对是我们要避免的事情。

#6改善SQL语句

一些由Hibernate生成SQL语句可能包含许多不必要的联接操作。 这是确保SQL语句爬网的一种可靠方法。 我们必须确保仅包含绝对必要的联接。 要记住的另一件事是如何组织WHERE条件以过滤结果集。 选择错误的顺序可能会使查询速度降低一个数量级。

#7重构Java代码

代码中最典型的问题之一是N + 1查询问题,我们运行查询以获取项目列表,然后遍历这些项目以对每个项目运行单独的查询。 单独使用这种反模式可以终止大多数扩展应用程序的尝试,并且可能使我们在托管上付出巨大的代价。 由于其修复需要代码重构 ,因此它是最复杂,最昂贵的性能问题之一。

摘要

当所有尝试似乎都无法解决性能问题时,仍然存在希望。 以上项目可能有助于在主要瓶颈升级为更大的问题之前对其进行识别。 哪些性能问题正在损害您的业务?

翻译自: https://www.javacodegeeks.com/2015/08/7-ways-to-improve-performance-of-a-hibernate-application.html

hibernate性能

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/337215.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

为什么永远不会有语言取代C/C++?

点击蓝字关注我们因公众号更改推送规则,请点“在看”并加“星标”第一时间获取精彩技术分享来源于网络,侵删数以百计的 C/C 替代品将会出现,但 C/C 将永远与我们同在!每个 CPU 都带有一种称为 ISA(指令集架构&#xff…

sql 非主键每年自增_或许你不知道的 10 条 SQL 技巧

上文我们简述了 SQL 的一些进阶技巧,一些朋友觉得不过瘾,我们继续来下篇,再送你 10 个技巧一、 使用延迟查询优化 limit [offset], [rows]经常出现类似以下的 SQL 语句:SELECT * FROM film LIMIT 100000, 10offset 特别大!这是我司出现很多慢…

C语言最全入门笔记

点击蓝字关注我们因公众号更改推送规则,请点“在看”并加“星标”第一时间获取精彩技术分享来源于网络,侵删c语言入门C语言一经出现就以其功能丰富、表达能力强、灵活方便、应用面广等特点迅速在全世界普及和推广。C语言不但执行效率高而且可移植性好&am…

junit测试spring_使用Spring JUnit规则进行参数化集成测试

junit测试springSpring 4.2附带了全新的JUnit规则: SpringClassRule和SpringMethodRule 。 使用JUnit规则的主要优点是让开发人员摆脱SpringJUnit4ClassRunner并在Spring集成测试中利用不同的JUnit运行器。 我认为Spring JUnit Rules的最大机会是易于创建参数化的集…

无处不在_Java无处不在:使用DukeScript在任何地方运行一次编写

无处不在在相当长一段时间内,Java都未能兑现“一次编写,随处运行”的承诺。 DukeScript希望通过在跨平台应用程序中实现视图和逻辑的清晰分离来改变这种状况。 在本文中,一个简单的场景用于介绍DukeScript的基础。 多年以来,Java…

C语言为何不会过时

点击蓝字关注我们因公众号更改推送规则,请点“在看”并加“星标”第一时间获取精彩技术分享来源于网络,侵删评价任何一门编程语言,都是招人骂的。永远是这样。就像是春寒料峭的季节, 街上穿棉袄和穿单衣的擦肩而过,双方…

教你如何用一句话激怒IT人

点击蓝字关注我们因公众号更改推送规则,请点“在看”并加“星标”第一时间获取精彩技术分享来源于网络,侵删在IT行业摸爬滚打这么久,你是否听过下面这些话:“这个很简单,我也是做程序出身的。”“预算砍掉一半&#xf…

java的网络编程有用吗_十大有用但又偏执的Java编程技术

java的网络编程有用吗经过一段时间的编码(以我为例,大约20年左右,当您玩得开心时光飞逝),人们开始接受这些习惯。 因为,你知道... 任何可能出错的事情都会发生。 这就是为什么人们会采用“防御性编程”的原…

未来五年有颠覆性的IT技术都在这里

点击蓝字关注我们因公众号更改推送规则,请点“在看”并加“星标”第一时间获取精彩技术分享来源于网络,侵删据福布斯杂志报道,在美国奥兰多举行的Gartner研讨会上,市场研究机构Gartner Research的副总裁兼资深研究员大卫卡利&…

java ee maven_真正释放Maven和Java EE的强大功能

java ee maven如果野心和愿景太复杂而无法使用,则它们可能会淘汰伟大的解决方案。 尽管Maven和Java EE是在整个Java行业中都已建立的良好技术,但是使用它们并使用其作者打算使用的所有技术和模式来设计项目可能非常棘手。 在开发过程中途,由…

程序员们,想在双十一脱单?赶快跟我捯饬起来吧

点击蓝字关注我们因公众号更改推送规则,请点“在看”并加“星标”第一时间获取精彩技术分享来源于网络,侵删生活中有很多男人一边抱怨自己不够洋气,找不到女票,另一方面又懒到宁肯在床上撸啊撸,也不愿意好好打扮自己。…

jboss8日志级别设置_罐中研讨会:设置JBoss BRMS全日研讨会

jboss8日志级别设置是否在寻找一种简单的方法来宣传,展示或演示使用JBoss业务规则管理系统(BRMS)产品的入门难度? 别无所求,因为我们已经召集了这个研讨会,因此您可以围绕JBoss BRMS构建一个晚上&#xff…

C语言编程时你常犯的18种错误

点击蓝字关注我们因公众号更改推送规则,请点“在看”并加“星标”第一时间获取精彩技术分享来源于网络,侵删C语言的最大特点是:功能强、使用方便灵活。C编译的程序对语法检查并不象其它高级语言那么严格,这就给编程人员留下“灵活…

这些知识你都不知道,难怪说你学不懂C语言!

点击蓝字关注我们因公众号更改推送规则,请点“在看”并加“星标”第一时间获取精彩技术分享来源于网络,侵删关于C语言的那些小知识,准备学习或者刚刚入门的你已经了解了吗?语言种类编译语言静态声明语言面向过程的编程语言环境工具…

图片识别出处_AI人脸识别

前言最近网络上爆火的藏族小哥哥丁真,大家都知道吗?十几天前凭借一张纯真、干净、帅气的脸霸屏各大短视频平台,连各大电视台新闻媒体都争相报道,这个藏族小伙瞬间火了!!网友们对于丁真的长相评价不一&#…

【从零开始学C语言】知识总结一:C语言的基本知识汇总

点击蓝字关注我们因公众号更改推送规则,请点“在看”并加“星标”第一时间获取精彩技术分享来源于网络,侵删C语言是一种计算机程序设计语言。它既有高级语言的特点,又具有汇编语言的特点。它可以作 为系统设计语言,编写工作系统应…

排球分组循环交叉编排_同学!中国海洋大学第一届排球联赛等你来战!

New中国海洋大学第一届排球联赛开始啦比赛宗旨1亲爱的同学们:为增强学生凝聚力,加强新老生交流,促进各院系的友谊,培养同学们的团队精神,丰富同学们的课余生活,展示我校文体风采,特此举办本次中…

jolokia_使用WildFly 9和Jolokia监视DevOps样式

jolokiaDevOps是当今最热门的话题之一。 并且围绕它的广泛主题使您很难真正找到完整的描述或涵盖体面粒度的所有内容。 可以肯定的一件事是:最重要的部分之一是提供正确的度量标准和信息以监视应用程序。 Java EE和JMX 监视Java EE服务器的标准方法是JMX。 使用JCo…

计算机的本质是哲学

点击蓝字关注我们因公众号更改推送规则,请点“在看”并加“星标”第一时间获取精彩技术分享来源于网络,侵删学什么抽象模型庄子说过吾生有崖,知无涯。以有限的生命去学习无尽的知识是很愚蠢的。所以,学习的终极目标一定不是知识本…

用户首次登录之前必须更改密码_技术丨带你玩转Win10系统的用户账户

由于微软关于Win10家庭版系统用户和组的功能设置,在一般情况下,用户无法直接进行用户账户的管理。但通过简单的设置,同样能够玩转Win10系统的用户账户。今天我们将探索并学习:如何实现用户账户的设置与更改。Microsoft账户登录首次…