楼主应该属于理论型的专家,如果你亲自去实施一个大访问量的项目,你就不会这么说了。 对于你的观点,我觉得你只说对了一半,因为你并没有为你的观点提出一个适用的场景,那么下面我给你描述一个场景,你看看,如果你不使用存储过程的话,效率会不会更高: 假定有一次操作,这次操作涉及到了10个业务对象,这些业务对象会频繁更新,也就是说,如果你要在内存中缓存的话,你必须要保证你的集群中的每个应用服务器中,缓存的这些数据是同步的,而且是最新,而且每次更新必须要保证持久化到db。 这样一来,可能你所说的缓存意义不会很大,因为就算你使用了EJB,在这样的要求了,如果你使用缓存,那么同样会影响你在集群中节点的数量(节点越多,同步数据的负载越大)。所以可能你会考虑不缓存这些数据,这些数据直接从db中读取,那么问题就来了,这10个对象在数据库中,我想你不仅仅使用一个表存储,你至少会存储在多个表中,那么在这种情况下,如果你不是用复杂的sql,或者 存储过程,那么你的这次操作必然会对应对此的数据库操作,相比较而言,这多次的Sql对于db来说,它加重了db的负载,而且耗费了连接数,耗费sql编译的时间。在这种情况下,如果按照你的说法,不使用复杂sql,不使用存储过程,我不知道在性能上你怎么能够达到要求。
|
|