Flyingis

          Talking and thinking freely !
          Flying in the world of GIS !
          隨筆 - 156, 文章 - 16, 評論 - 589, 引用 - 0
          數(shù)據(jù)加載中……

          Hibernate學習心得--性能優(yōu)化

              作者:Flyingis
              
              在使用Hibernate進行查詢的時候大家都會用到Hibernate緩存,其中Session緩存即一塊內存空間,存放了相互關聯(lián)的Java對象,這些位于Session緩存中的對象就是持久化對象,Session根據(jù)持久化對象的狀態(tài)變化來同步更新數(shù)據(jù)庫。這個Session緩存是Hibernate的一級緩存。此外,SessionFactory有一個內置緩存和一個外置緩存,即Hibernate的第二級緩存。而Hibernate正是由于這些緩存的存在,才使得其數(shù)據(jù)庫操作效率提高,就是說,在提供了方便易操作的操作數(shù)據(jù)庫數(shù)據(jù)的方式的同時保證了工作效率,但是不能因此而免去后顧之憂,需要在設計業(yè)務邏輯層的時候考慮使用最優(yōu)的架構,節(jié)省有效的系統(tǒng)資源。在查詢方面,Hibernate主要從以下幾個方面來優(yōu)化查詢性能:

          1.降低訪問數(shù)據(jù)庫的頻率,減少select語句的數(shù)目。實現(xiàn)手段包括:

              使用迫切左外連接或迫切內連接檢索策略。
              對延遲檢索或立即檢索策略設置批量檢索數(shù)目。
              使用查詢緩存。

          2.避免多余加載程序不需要訪問的數(shù)據(jù)。實現(xiàn)手段包括:

              使用延遲檢索策略。
              使用集合過濾。

          3.避免報表查詢數(shù)據(jù)占用緩存。實現(xiàn)手段為利用投影查詢功能,查詢出實體的部分屬性。

          4.減少select語句中的字段,從而降低訪問數(shù)據(jù)庫的數(shù)據(jù)量。實現(xiàn)手段為利用Query的iterate()方法。

              在插入和更新數(shù)據(jù)時,要控制insert和update語句,合理設置映射屬性來保證插入更新的性能,例如,當表中包含許多字段時,建議把dynamic-update屬性和dynamic-update屬性都設為true,這樣在insert和update語句中就只包含需要插入或更新的字段,這可以節(jié)省數(shù)據(jù)庫執(zhí)行SQL語句的時間,從而提高應用的運行性能。

              還有什么其它的提升性能的方式希望和大家一起討論。

          posted on 2005-11-15 10:22 Flyingis 閱讀(6190) 評論(3)  編輯  收藏 所屬分類: Hibernate

          評論

          # re: Hibernate學習心得--性能優(yōu)化  回復  更多評論   

          自己的hiberbate項目進行中...頂!
          2006-09-25 11:03 | 壞男孩

          # re: Hibernate學習心得--性能優(yōu)化  回復  更多評論   

          Hi,can I make friends with you? I want to ask you for some help with hibernate consultant job.
          Thanks!
          My MSN:liujeanne@hotmail.com
          2006-11-28 16:09 | Jeanne

          # re: Hibernate學習心得--性能優(yōu)化  回復  更多評論   

          是否能結合arcengine,弄一個Hibernate for AO模型出來。畢竟使用FeautreClass,Feature在有些復雜的業(yè)務應用中不是很方便。
          2007-11-28 09:00 | Mr Du
          主站蜘蛛池模板: 南乐县| 鄂伦春自治旗| 房山区| 新干县| 分宜县| 兴城市| 古田县| 北碚区| 遂宁市| 拉萨市| 谢通门县| 玉田县| 共和县| 呼玛县| 旅游| 玛曲县| 廉江市| 马鞍山市| 南皮县| 镇远县| 弋阳县| 沈阳市| 海原县| 湛江市| 牙克石市| 剑川县| 大庆市| 龙州县| 尚义县| 济南市| 巴中市| 吐鲁番市| 嵊泗县| 钟祥市| 工布江达县| 灵宝市| 昭平县| 泸水县| 镇远县| 九龙县| 中山市|