在您的經驗什麼是一些很好的Hibernate性能調整?我的意思是插入/更新和查詢。休眠性能調整
Q
休眠性能調整
4
A
回答
5
一些具體的Hibernate的性能優化技巧:
- 避免加入引起平行重複一對多ASSOCATION取-聯接(從而避免重複的對象實例化)
- 使用延遲加載與提取=「再選擇」 (防止N + 1選擇問題)
- 在巨大的只讀結果集,不提取到映射的對象,而是變成扁平的DTO(與預測和AliasToBean-使用ResultTransformer)
- 應用HQL批量更新,批量刪除和插入請選擇
- 使用FlushMode.Never酌情
從http://arnosoftwaredev.blogspot.com/2011/01/hibernate-performance-tips.html
0
正確使用緩存,級聯和延遲加載。
調整? Hibernate根據你給出的映射爲你生成SQL。如果你不喜歡SQL,那麼Hibernate可能不是正確的工具。
的性能剩下的必須做的數據庫設計:規範化,索引等
4
我不知道這是一個好辦法,但連接抓取可能是有用的,如果你有一個多TO-一個你知道你會需要的。例如,如果一個Person可以是單個Department的成員,並且你知道你將需要在一個特定的地方,你可以使用類似於Person p的左連接獲取p.department,而Hibernate將會做一個單一的查詢一個Person查詢後跟n個部門查詢。
當進行大量的插入/更新時,定期調用flush而不是每次保存後或最後--Hibernate會批量處理這些語句並將它們一起發送到數據庫,這將減少網絡開銷。
最後,要小心二級緩存。如果你知道你通過id讀取的大部分對象都在緩存中,它可以使事情變得非常快,但是如果依賴它們,但沒有配置好它,那麼你最終會做很多事情單行數據庫查詢,當您只能帶回一個網絡/數據庫旅程的大型結果集時。
相關問題
- 1. 休眠性能調整
- 2. 休眠executeUpdate性能
- 3. 休眠性能問題
- 4. 休眠繼承性能
- 5. 休眠:C3P0性能忽略
- 6. 休眠屬性
- 7. 休眠不保留參照完整性
- 8. 休眠持久性
- 9. 休眠性能最佳實踐?
- 10. 休眠性能問題:ScrollableResults vs firstResult/maxResult
- 11. 休眠批處理操作性能
- 12. 休眠不顯示性能日誌
- 13. JPA與休眠 - 合併性能問題
- 14. 休眠C3P0設置性能問題
- 15. 休眠和EHCache性能問題
- 16. 休眠二級緩存的性能ehcache
- 17. 調用MySQL的功能處於休眠
- 18. 從休眠調用Oracle存儲功能
- 19. 休眠返回整數值
- 20. 性能調整
- 21. 性能調整
- 22. 性能調整
- 23. 休眠列於持久性
- 24. 休眠獲取列屬性
- 25. 休眠@OrderBy嵌套性
- 26. 休眠數據一致性
- 27. 休眠實體持久性
- 28. JPA /休眠 - 嵌入屬性
- 29. 休眠屬性更新
- 30. 休眠屬性找不到
兩者能否詳細說明? – MatBailie 2009-01-27 21:59:35