JiveJdon Community Forums
在线149人   首页   主题表   培训咨询   标签   精华   查搜   注册    登陆 RSS
首页 » 论坛 » J2EE/JavaEE/JEE/EJB/JSF等技术讨论
???en_US.forumThreadPrev.name??? 上一主题
google yahoo 365Key网摘 CSDN网摘 添加到百度搜藏 POCO网摘 新浪ViVi 天极网摘
???en_US.forumThreadNext.name??? 下一主题
Go 共有 1 回复 / 1
 发表新帖子   回复该主题贴
wealupa

悄悄话
发表文章: 1
注册时间: 2006年11月08日 17:43
Hibernate表关联引发的性能问题(低级) 2006年11月09日 10:16 到本帖网址 加入本帖到收藏夹 回复该主题
标签          
系统框架选择:struts+spring+Hibernate。

当初项目开始的时候是Hibernate2.0,后来升级到Hibernate3.0,数据库设计的时候有很多关联关系,起初用Hibernate的时候取道主表的结果集后,连带从表的结果集一起能得到,用起来感觉很爽,一个Hql就能得到很多,再也不需要用以前的联合查询,感觉真的解脱了,伴随升级到Hibernate3.0为了达成这一效果就设置了lazy="false"。

起初没有发觉,随着项目的慢慢收尾性能问题突现,以前的连带查询的小方便竟然成了最大的性能问题,一条简单的数据查询,伴随的竟然是10多条甚至更多的sql查询出现。

抛除数据库以及系统设计的问题(现在已经没法改变了),究竟是我Hibernate使用不当(如果是,情尽快指正,不胜感激),还是Hibernate本身对设计要求比较高呢?

比方说三个对象A,B,C。A和B的关系是one-to-many、B和C的关系也是one-to-many
1、public class A() {
private B b;
}
2、public class B() {
private C c;
}

如果lazy为false,则一条简单的A查询就会连带出现很多的查询把所关联的所有B和C都查了。

设置lazy为false的一点好处是:查A的时候容易得到B、查B的时候容易得到A,而现在看来这种简单大大浪费的性能。我有时只想得到A的简单数据时也连带得到了B和C。
banq

悄悄话
发表文章: 9613
注册时间: 2002年08月03日 17:08
Re: Hibernate表关联引发的性能问题(低级) 2006年11月09日 10:48 到本帖网址 加入本帖到收藏夹 回复该主题
前面回答了 使用lazy=true + open session in view
标签          
共有 1 回复 / 1Go
???en_US.forumThreadPrev.name??? 上一主题
  Go back to the topic 返回本主题   Go back to the topic listing返回主题列表    返回页首返回页首
???en_US.forumThreadNext.name??? 下一主题
热点TAG:
正在读取,请等待...
查询本论坛内 回复超过的热门帖子
标题
 
粗体: [b]文本[/b] 斜体: [i]文本[/i] 下划线 [u]文本[/u] 插入图片 [img]http://wwww.xxxx.com/img.ext[/img] 插入代码 [code]程序代码[/code]  插入url链接 [url]http://url[/url] / [url=http://url]URL加下滑线[/url] 插入附件 插入word文档 Txt等文件
内容
  提交时自动拷贝以上内容到剪贴板 Ctrl-V可取出;提问题前先查询标签列表

RSS 手机阅读 add to google add to yahoo
解惑之道在J道 ,打造中国最具影响力的的企业软件社区 推荐Chrome快速浏览本站
OpenSource JIVEJDON v3.5 Powered by JdonFramework Code © 2002-09 jdon.com

anti spam