大家都知道,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