隨筆 - 4  文章 - 10  trackbacks - 0
          <2025年7月>
          293012345
          6789101112
          13141516171819
          20212223242526
          272829303112
          3456789

          常用鏈接

          留言簿(1)

          隨筆檔案

          文章分類

          文章檔案

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

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

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

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

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

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

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

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

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

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

          posted on 2007-08-15 21:16 冬天出走的豬 閱讀(201) 評論(0)  編輯  收藏 所屬分類: hibernate
          主站蜘蛛池模板: 博乐市| 齐齐哈尔市| 乌兰县| 榆社县| 南皮县| 天长市| 康乐县| 临安市| 湖南省| 广元市| 平利县| 玛多县| 丰原市| 虎林市| 南通市| 呼和浩特市| 普安县| 安化县| 长岛县| 西丰县| 延庆县| 盐源县| 徐州市| 安塞县| 新乡市| 青龙| 正安县| 定州市| 老河口市| 宝坻区| 泗阳县| 田阳县| 台南县| 普陀区| 舞阳县| 镇巴县| 陕西省| 家居| 抚宁县| 江华| 永登县|