<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Vincent.Chan‘s Blog

    常用鏈接

    統計

    積分與排名

    網站

    最新評論

    Hibernate性能調優---Robbin 摘自http://www.javaeye.com/topic/73652

    Robbin總結的Hibernate性能優化要點:

    1.盡量使用many-to-one,避免使用單項one-to-many
    2.靈活使用單向one-to-many
    3.不用一對一,使用多對一代替一對一
    4.配置對象緩存,不使用集合緩存
    5.一對多使用Bag 多對一使用Set
    6.繼承使用顯示多態  HQL:from object  polymorphism="exlicit" 避免查處所有對象
    7.消除大表,使用二級緩存
        對于上面這些,Robbin進行了詳細的講解。
    one-to-many:
         使用inverse=false(default),對象的關聯關系是由parent對象來維護的
         而inverse=true的情況下,一般用戶雙向多對多關聯,由子對象維護關聯關系,增加子對象的時候需要顯示:child.setParent(child)
         為了提高性能,應該盡量使用雙向one-to-many inverse=true,在MVC結構中的DAO接口中應該直接用Session持久化對象,避免通過關聯關系(這句話有點不理解),而在單項關系中正確使用二級緩存,則可以大幅提高以查詢為主的應用。
         多對一性能問題比較少,但是要避免經典N+1問題。
         通過主鍵進行關聯,相當于大表拆分小表。(這個是區分面向對象設計和面向過程設計的一個關鍵點)
    list、bag、set的正確運用
         one-to-many:
         A、使用list 需要維護Index Column字段,不能被用于雙向關聯,而且必須使用inverse=false,需要謹慎使用在某些稀有場合(基本上是不予考慮使用)
         B、bag/set在one-to-many中語義基本相同,推薦使用bag
         many-to-one:
         A、bag和set不同,bag允許重復插入,建議使用set
    在龐大的集合分頁中應該使用session.createFilter
        session.createFilter(parent.getChildren(),""),setFirstResult(0),setMaxResult(10))
    避免N+1 參考(http://www.javaeye.com/post/266972)
        在多對一的情況下,查詢child對象,當在頁面上顯示每個子類的父類對象的時候會導致N+1次查詢,需要采用下面的方法避免:many-to-one fetch="join|select"(該方法可能有問題)
    inverse=true 無法維護集合緩存(還不是很理解集合緩存和對象緩存)
    OLTP類型的web應用,可以群集水平擴展,不可避免的出現數據庫瓶頸
        框架能降低訪問數據庫的壓力,采用緩存是衡量一個框架是否優秀的重要標準,從緩存方面看Hibernate
        A、對象緩存,細顆粒度,是針對表的級別,透明化訪問,因為有不改變代碼的好處,所以是ORM提高性能的法寶
        B、Hibernate是目前ORM框架中緩存性能最好的框架
        C、查詢緩存
    最后Robbin還針對大家經常出現的Hibernate vs iBatis的討論進行了一個總結:
       對于OLTP應用,使用ORM框架 而OLEB應用(不確定是什么應用)最好采用JDBC或者其他方法處理
       Hibernate傾向于細顆粒度設計,面向對象,將大表拆分為多個小表,消除冗余字段,通過二級緩存提升性能。
      iBatis傾向于粗顆粒度設計,面向關系,盡量把表合并,通過Column冗余,消除關聯關系,但是iBatis沒有有效的緩存手段。

    posted on 2007-08-26 18:31 Vincent.Chen 閱讀(664) 評論(0)  編輯  收藏 所屬分類: Hibernate

    主站蜘蛛池模板: 亚洲综合色丁香婷婷六月图片| 亚洲人成在线观看| 亚洲av无码一区二区三区天堂| 一区二区无码免费视频网站 | 亚洲精品无码人妻无码| 日本高清在线免费| 亚洲一区二区三区亚瑟| 福利免费观看午夜体检区| ww亚洲ww在线观看国产| 野花高清在线电影观看免费视频| 久久精品国产亚洲AV忘忧草18| 91在线视频免费播放| 亚洲无人区码一二三码区别图片 | 在线视频观看免费视频18| 亚洲人成电影网站久久| 全免费a级毛片免费看无码| 特黄aa级毛片免费视频播放| 亚洲&#228;v永久无码精品天堂久久| 免费在线人人电影网| 精品亚洲永久免费精品| 97在线视频免费| 亚洲日韩亚洲另类激情文学| 日日AV拍夜夜添久久免费| 日亚毛片免费乱码不卡一区| 亚洲宅男天堂在线观看无病毒| 少妇人妻偷人精品免费视频| 亚洲视频在线视频| 无码一区二区三区免费视频| 亚洲AV无码一区二区三区牲色| 亚洲AV无码成人精品区大在线| 国产啪精品视频网站免费尤物| 亚洲自偷自拍另类图片二区| 妞干网免费视频在线观看| 一级一级一片免费高清| 亚洲AV成人精品网站在线播放| 国产免费av片在线看| 国产精品内射视频免费| 亚洲美女免费视频| 亚洲高清免费视频| 最近中文字幕电影大全免费版 | 国产高清在线免费|