荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: georgehill (毕业生【一个人的精彩】), 信区: Java
标  题: [转载] 新的调节entity bean性能的七条准则(转寄)
发信站: 荔园晨风BBS站 (Tue Dec 18 22:39:37 2001), 站内信件

【 以下文字转载自 georgehill 的信箱 】
【 原文由 georgehill@smth.org 所发表 】
发信人: VRGL (人月神话), 信区: Java
标  题: 新的调节entity bean性能的七条准则
发信站: BBS 水木清华站 (Tue Dec 18 09:01:04 2001)

    在工业中有关于entity bean的很多FUD(Fear,Uncertainty,Doubt)。
很多机构正在不合适的使用它们,造成性能问题。这里有一些tips和
tricks让你的entity bean有更高的性能。
1.entity bean不应该由远程的客户端直接调用,而是应该被在同一进程
中的session bean和entity bean调用。鉴于此,你应该通过local
interface来调用它们,而不是remote interface。
2.尽可能使用你的容器的caching。如果你的bean是只读的,那么
让你的容器去让他们永久的caching。如果它们是最大限度的读或
读写的,许多容器有算法来处理这种情况。记住:内存是便宜的。
3.确定你的服务器上的事务运行得越短越好,并且封装你想在事务中
做的entity bean操作。这很重要因为JDBC发生在事务的开始和结束。
如果你在每次get/set操作时使用事务,你在每次方法调用时做了SQL hit。
用需要的容器管理事务属性发布session和entity bean。这将创建
在同一事务中封装了所有entity bean的session bean的事务。
4.尽量使用CMP。CMP天生的比BMP性能高。
5.如果你需要在每个事务中存取你的entity bean的所有数据,
不要在你第一次存取你的bean时取出你的所有字段的数据:你可
以通过编程来使用BMP来fine-tuning你的JDBC代码;或者如果你
的容器工具允许,你可以用CMP的方式来lazy-load你的字段。
6.如果你使用CMP,让你的容器批量的持久化你的字段。比如,
weblogic有field groups的术语。这个让你定义groups of
fields(甚至跨关系)来一起持久化,减少需要的sql量。
7.如果你使用CMP,用你的容器工具强制你的finder方法自动load
你的bean,而不是让finder和loading发生在两个分离的SQL表达
式。唯一一种你不该用这种方法的情况是你不准备从你的entity
bean读数据(如set字段,而不是get字段)。
  用上面的方法来调节你的entity bean的性能,可以创建
在数据库中建模单列的细粒度的entity bean,和建模关系到
多表的复杂的数据的粗粒度的entity bean。



--

※ 来源:·BBS 水木清华站 smth.org·[FROM: 202.110.144.12]
--
※ 转载:·荔园晨风BBS站 bbs.szu.edu.cn·[FROM: 192.168.1.238]


[回到开始] [上一篇][下一篇]

荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店