husthxd - by - 03 十二月, 2006 13:36
Hibernate中一级cache其实是缓存了要执行的SQL语句队列,在调用session.flush或者事务commit的时候batchUpdate这一批SQL.
这样做带来的性能提升是非常明显的:避免持久层与数据库的频繁交互,减少数据库层SQL引擎的上下文切换,如果在中间步骤有Exception产生,rollback只是发生在持久层,跟数据库无关.
Hibernate的这个特性是JDBC所无法比拟的.
Hibernate中一级cache其实是缓存了要执行的SQL语句队列,在调用session.flush或者事务commit的时候batchUpdate这一批SQL.
这样做带来的性能提升是非常明显的:避免持久层与数据库的频繁交互,减少数据库层SQL引擎的上下文切换,如果在中间步骤有Exception产生,rollback只是发生在持久层,跟数据库无关.
Hibernate的这个特性是JDBC所无法比拟的.
最新回复
当并发用户数超过几十几百的时候,Hibernate就不太适用了。
作者 echo — 03 十二月, 2006 13:36
呵呵,那用什么?
b/s应用之所以可以支持成百上千的用户,
第一,短事务,不会长时间占用数据库资源
第二,中间层有连接池
别说几十几百,如果应用调整良好的话,上千的并发使用hibernate也是没有问题的。
作者 husthxd — 03 十二月, 2006 13:36
我们公司那几个程序员用hibernate写的程序慢的要命。他们说,是因为,hibernate不适用于大并发量的环境。
作者 echo — 03 十二月, 2006 13:36
用不好技术就是技术这个不好,那个不好.
让qa做做压力测试就清楚了.
作者 husthxd — 03 十二月, 2006 13:36