gougou3250
2007-07-04 17:50
缓存用在基本不变,而又经常访问的数据 没错

数据经常变的 但是命中率非常高,那使用缓存也能很大的提高效率

这些复杂的查询,使用HQL与方言效率差别很大的,你可以使用SQLQUERY或者存储过程来实现。HIBERNATE只是提供了那么一层封装,让你的业务逻辑与复杂数据库操作分开而已。一个经典的系统,应该是拿多种技术拼凑而成的。每个技术都有他的优点缺点,只当这个技术在时间,成本,质量三者权衡后 取最大值时才使用.

dd_macle
2007-07-25 16:18
不好意思,这段时间比较忙,一直没来看,gougou3250兄所言极是,一个好的有一定规模的系统,为了在开发效率、运行效率等多方面获得平衡,一般来说都不会只采用单一的某种技术,而是根据实际情况,在不同的场合运用多种技术来实现。

比如:对于哪些经常要执行的批量插入、查询的操作,采用存储过程就能获得比较好的效率,而在大多数普通的操作,采用Hibernate本身的ORM即可

banq
2007-07-26 15:11
使用Hibernate,就要依据对象法则来分析设计系统,这有赖于架构水平(在这个时期,架构师薪水最高)。

你现在的系统实际是面向数据库系统,这就有赖于DBA水平(在这个时期,DBA薪水最高)。

楼上已经说了,使用缓存,但是前提必须是对象缓存,而不是分散的数据缓存。因为你使用了Hibernate,实际就走上了依靠对象方式提高性能的另外一条之路;这条路和你数据库性能提升方式是不一样的思路。

现在,你试图两个思路都用,这两个是矛盾的,所以很显然不现实,这也是很多人反映Hibernate并“不好用”原因所在。

Hibernate封装了SQL,那么你就只能依靠Hibernate手册提供的优化技巧力所能及的进行优化。

但是不要让业务逻辑触碰到SQL语句,或者与SQL发生耦合,这是原则。

你希望通过存储过程等语句,那么也要依据上述原则。所有这些前提是:如果你想走OO路线,想让你的程序变得更好的可维护性和可拓展性。

猜你喜欢
2Go 上一页 1 2