jdon 解惑授道,企业信息化解决之道
 

热点Tag: AOP cache DDD EJB 集群 设计模式 Hibernate IOC JiveJdon OO RBAC Spring Struts

Jdon框架演示

JiveJdon3.0
源码下载

GoF设计模式

在线教程

社区精彩讨论












大家来一起讨论如何通过Hibernate提高访问数据库的速度

作者:LifeNote 发表时间:2006年08月29日 02:13 回复此消息回复

原贴网址: http://www.jdon.com/jivejdon/thread/28484.html

最近本人正搞一个项目,项目中我们用到了Struts1.2+hibernate3
由于关系复杂表和表之间的关系很多,在很多地方把lazy都设置false,所以导致数据一加载很慢,而且查询一条数据更是非常的慢,由于项目时间比较短,时间很紧,所以一直都在忙着实现功能,还没来的急进行优化
今天我设置下二级缓存 效果不大,我想肯定还有更好的方法,比如Hibernate.initialize 还有迫切连接等方法
请大家多给点意见,最好给一个详细的技术文章
谢谢大家~!

Re: 大家来一起讨论如何通过Hibernate提高访问数据库的速度 发表: 2006年08月30日 09:29 回复
banq 发表文章: 8914/ 注册时间: 2002年08月03日 17:08
首先必须明白:性能问题完全取决于你的业务设计问题,而不是某个具体架构技术的性能。

你的业务设计采取面向数据表分析,导致关系复杂表和表之间的关系很多,这是你的系统性能问题最本质原因,只有使用DDD重新分析你的系统,才从根本上改观。

其他只是一些小修小打的微调,不能根本解决问题。

Re: 大家来一起讨论如何通过Hibernate提高访问数据库的速度 发表: 2006年08月30日 19:46 回复
j10A 发表文章: 32/ 注册时间: 2006年03月11日 09:13
捆绑上Hibernate,你就走上了死亡的战车。

Re: 大家来一起讨论如何通过Hibernate提高访问数据库的速度 发表: 2006年08月30日 23:28 回复
wind13 发表文章: 59/ 注册时间: 2006年07月10日 18:52
彭老师,正好要问你一下,原来的JDon的Message的示例是采用Hibernate2实现的,现在用Hibernate3如何实现?调试发现很多地方有问题~

Re: 大家来一起讨论如何通过Hibernate提高访问数据库的速度 发表: 2006年08月31日 09:32 回复
banq 发表文章: 8914/ 注册时间: 2002年08月03日 17:08
如果不能掌握Domain Model的设计方式,使用ORM是比较艰难的。不如No ORM,看看TSS前段时间讨论的:No ORM: The simplest solution
http://www.theserverside.com/blogs/thread.tss?thread_id=41715

非常有意思,当初Hibernate刚出来时,有人和我争辩:NO EJB,NO EntityBean,大肆指责EJB实体Bean使用复杂,推崇Hibernate,如今还是同样的轮子,说明主要问题是我们建模方式不对,我会专门文章讨论

Re: 大家来一起讨论如何通过Hibernate提高访问数据库的速度 发表: 2006年08月31日 16:22 回复
wind13 发表文章: 59/ 注册时间: 2006年07月10日 18:52
英文论坛啊,看起来有些费力,哈哈……不过明白您的意思了,我们会考虑实际情况的,相信是有办法的。

Re: 大家来一起讨论如何通过Hibernate提高访问数据库的速度 发表: 2006年09月01日 07:53 回复
j10A 发表文章: 32/ 注册时间: 2006年03月11日 09:13
>>首先必须明白:性能问题完全取决于你的业务设计问题,而不是某个具>>体架构技术的性能。
感觉banq越来越偏激了,似乎“水变油”的理论在这里也能得到正解了。

Re: 大家来一起讨论如何通过Hibernate提高访问数据库的速度 发表: 2006年09月01日 16:32 回复
junglesong 发表文章: 36/ 注册时间: 2006年06月07日 14:05
很同意,有些人主动或被动把SQL搞得很复杂,这本身就背离了OR MAPPING的初衷,也背离了持久曾的实质.
好的DB设计不会有复杂的SQl代码,基本就是简单的CRUD语句,在它上层再用一层Service实现复杂的业务机制.当然,这必须在领域对象已经清晰的情况下.

Re: 大家来一起讨论如何通过Hibernate提高访问数据库的速度 发表: 2006年09月01日 16:36 回复
junglesong 发表文章: 36/ 注册时间: 2006年06月07日 14:05
另外在用户闲置时间做一些数据处理工作也是很好的,等用户登录后直接就呈现给他,不用被动的等待命令再行动.

Re: 大家来一起讨论如何通过Hibernate提高访问数据库的速度 发表: 2006年09月07日 16:13 回复
J2EE爱好者 发表文章: 5/ 注册时间: 2006年08月06日 22:28

up!

我也觉得banq有点偏激了!!


Re: 大家来一起讨论如何通过Hibernate提高访问数据库的速度 发表: 2006年09月11日 12:29 回复
totempole 发表文章: 7/ 注册时间: 2006年09月11日 11:51
每种技术都有优缺点,最根本的还是programmer的素质,知道如何运用technologies, 而不是选取那种framework or technology.

Re: 大家来一起讨论如何通过Hibernate提高访问数据库的速度 发表: 2006年09月12日 11:39 回复
superbible 发表文章: 28/ 注册时间: 2006年09月11日 10:39
我倒是觉得这次banq说的在理。
当然不能说完全取决于业务设计(或者数据库设计),但这个可以说是比较主要的原因。

Re: 大家来一起讨论如何通过Hibernate提高访问数据库的速度 发表: 2006年09月15日 23:32 回复
LifeNote 发表文章: 25/ 注册时间: 2006年06月24日 23:30
那应该怎么呢?
请给个例子可以让我学习一下可以么
我的邮箱sunxianchao333@hotmail.com
再请教个问题什么时候用Hibernate呢 为什么我在这里的公司没有用呢
是电信这样的大公司啊

Re: 大家来一起讨论如何通过Hibernate提高访问数据库的速度 发表: 2006年09月18日 17:44 回复
banq 发表文章: 8914/ 注册时间: 2002年08月03日 17:08
>再请教个问题什么时候用Hibernate呢 为什么我在这里的公司没有用呢
>是电信这样的大公司啊

使用Hibernate前提必须掌握领域建模的方法,也就是Evans DDD,至少了解类关联的意思和本质。

我们以前很多程序员都是基于数据表编程的思路,现在使用了Hibernate这样的ORM,Hibernate替代了数据表,或者说;插在了数据表和程序员之间,程序员就看不见数据表了,程序员必须学会和Hibernate代表的对象打交道,如果还是念念不忘数据表,那么每次用Hibernate,总是要转个弯,就不自然而且不方便。

换句话说:只有程序员真正掌握面向对象的分析设计和编程,才会觉得使用Hiberante等ORM工具是一个最简单的方式,否则,反而觉得数据表JDBC是一个简单的解决方式。

所以,可以从是否善用Hibernate看出程序员的OO素质。虽然你的单位是电信大单位,但是OO作为一个与面向过程全新的革命性技术和思想,它是挑战和颠覆面向过程的思维的,而我们国内以前大学教育以及实践如Delphi/VB等等都是传统的面向过程思维,虽然他们做过大项目,经验丰富,但是也吃了很多苦头,只是朴素地直觉认为程序要灵活,但是没有上升为OO理论,因为掌握OO是对自己过去经验和习惯的挑战,是对自己的挑战,又有几个人做到,象你这样舒服的大单位,谁有没事折磨自己,挑战自己呢?

Re: 大家来一起讨论如何通过Hibernate提高访问数据库的速度 发表: 2006年09月18日 17:45 回复
banq 发表文章: 8914/ 注册时间: 2002年08月03日 17:08
相关帖子:

总觉得Hibernate影响设计思路
http://www.jdon.com/jive/thread.jsp?forum=62&thread=27886

当前Java软件开发中几种认识误区:
http://www.jdon.com/mda/nlayes.html

这个主题共有 34 回复 / 3 页 [ 1 2 3 下一页 ]
 
上一篇: 关于Dao接口方法参数 下一篇: 如何获取Struts2里的循环数值
 
查询本论坛 最热门帖子
快速发表回复:
标题
 
粗体 斜体 下划线 插入图片 插入代码 插入url链接 插入附件
内容
 
联系我们 | 关于我们 | RSS订阅 | 广告联系 | 网站地图 | 设为首页
Copyright (C) 2002-2007 Jdon.com, All Rights Reserved 版权所有 上海解道计算机技术有限公司
沪ICP备05018152号 如有意见请与我们联系 Powered by JdonFramework