優化Hibernate一級緩存
有5中方案:
1,延遲加載;
2,外鏈接;
3,批量處理;
4,集合過濾;
5,投影查詢
1,“延遲加載”,就是lazy屬性。
lazy屬性可以設置在class,set,many-to-one上,但一般class上沒有必要設置,一般載入class,目的就是要讀他的屬性的,set可以設定lazy=true,可以提高性能。many-to-one的lazy好像是假的,好像是由one一方的class上的lazy來決定是否延遲加載的。
結論:在多對多和一對多的set元素上設置lazy=true。
2,“外鏈接”,就是outer-join屬性。
一般在set上優先考慮“延遲加載”,這時需要設置outer-join=false。
在many-to-one上,一般one的一方的lazy是false,而默認outer-join=auto,這是會進行外連接。
結論:outer-join在set上設為false,其他的不用管。
3,“批量處理”,就是batch-size屬性。
一般設為3-10,可以減少sql語句,提高性能。具體大小需要多做試驗才能決定。
結論:在class和set元素上設定batch-size的值。
待續
posted on 2006-11-20 11:35 MingIsMe 閱讀(170) 評論(0) 編輯 收藏 所屬分類: 06 J2EE