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