大家都知道,Hibernate的引入开销基本在数据库中的所有操作,由于内部缓存的管理和对象的状态。提高性能取与Hibernate
我们目前在我们的应用程序,我们使用普通的SQL(JDBC),并使用Hibernate来保存和更新读取数据。原因是我们需要在每次计算过程中加载大量信息,但只更新有限的部分。现在
,我们知道这种方法是不是真的干净,我们做了一些测试,我们试图微调Hibernate的阅读,但我们所取得的成就是以下几点:
读写时间JDBC(session.doWork) :23号第
读取时间休眠(session.createQuery懒获取):94号
在我们看来,现有的开销是由于Hibernate的额外的处理,我们想知道,如果在并行读取本身可能是有帮助(我们正在阅读很多我们可以并行执行的表格)? Hibernate的会话和事务是否被设计为安全地从多个线程使用?
此外,如果您有任何其他的想法,有什么可以帮助加快这一准备就绪,我们将感谢。
谢谢,但它接缝,我们已经尝试了一切,现在我们仍坚持这一4X开销。 – mario 2012-03-06 12:27:09
@mario:你有没有尝试过分析?但老实说,原始JDBC中的23秒意味着你正在做很多查询,不要指望Hibernate在所有反射/ HQL开销(可能是标准API)或者[批处理](http:// docs.jboss.org/hibernate/orm/3.3/reference/en/html/batch.html))另外,Hibernate并不是最快的JPA提供者:http://www.jpab.org – 2012-03-06 12:30:51
我们正在阅读很多数据,但只有很少的查询。我的直觉告诉我预计会有2-5倍的开销,我们的成就(4倍)符合预期。我会检查jpab(到目前为止还没有听说过)。谢谢! – mario 2012-03-06 12:42:27