優化Hibernate性能的幾點建議
摘要: 針對Oracle數據庫而言,Fetch Size 是設定JDBC的Statement讀取數據的時候每次從數據庫中取出的記錄條數,一般設置為30、50、100.Oracle數據庫的JDBC驅動默認的Fetch Size=15,設置Fetch Size設置為:30、50,性能會有明顯提升,如果繼續增大,超出100,性能提升不明顯,反而會消耗內存。
閱讀全文
posted @
2009-06-24 17:08 Werther 閱讀(271) |
評論 (0) 編輯
Hibernate中二級緩存的配置和使用
摘要: (一)Hibernate的二級緩存策略的一般過程如下:
1) 條件查詢的時候,總是發出一條select * from table_name where …. (選擇所有字段)這樣的SQL語句查詢數據庫,一次獲得所有的數據對象。
2) 把獲得的所有數據對象根據ID放入到第二級緩存中。
3) 當Hibernate根據ID訪問數據對象的時候,首先從Session一級緩存中查;查不到,如果配置了二級緩存,那么從二級緩存中查;查不到,再查詢數據庫,把結果按照ID放入到緩存。
4) 刪除、更新、增加數據的時候,同時更新緩存。
Hibernate的二級緩存策略,是針對于ID查詢的緩存策略,對于條件查詢則毫無作用。為此,Hibernate提供了針對條件查詢的Query Cache。
閱讀全文
posted @
2009-06-23 17:32 Werther 閱讀(1696) |
評論 (2) 編輯
Hibernate的樂觀鎖與悲觀鎖(轉載)
摘要: 業務邏輯的實現過程中,往往需要保證數據訪問的排他性。如在金融系統的日終結算處理中,我們希望針對某個 cut-off 時間點的數據進行處理,而不希望在結算進行過程中(可能是幾秒種,也可能是幾個小時),數據再發生變化。此時,我們就需要通過一些機制來保證這些數據在某個操作過程中不會被外界修改,這樣的機制,在這里,也就是所謂的 “鎖” ,即給我們選定的目標數據上鎖,使其無法被其他程序修改。Hibernate 支持兩種鎖機制:即通常所說的 “悲觀鎖( Pessimistic Locking )”和 “樂觀鎖( Optimistic Locking )”
閱讀全文
posted @
2009-06-22 17:25 Werther 閱讀(337) |
評論 (0) 編輯
hibernate的11大優勢
摘要: Hibernate在解決性能問題方面做得非常好。有了它的緩存機制,使用第三方緩存和數據庫連接池,就較好的解決的性能問題。但這些還不夠,hibernate給了開發者足夠的自由,讓開發者自己去控制性能問題。
閱讀全文
posted @
2009-06-18 17:21 Werther 閱讀(5769) |
評論 (15) 編輯