?????? Hibernate是對(duì)JDBC的輕量級(jí)封裝,因此在很多情況下Hibernate的性能比直接使用JDBC存取數(shù)據(jù)庫要低。然而,通過正確的方法和策略,在使用Hibernate的時(shí)候還是可以非常接近直接使用JDBC時(shí)的效率的,并且,在有些情況下還有可能高于使用JDBC時(shí)的執(zhí)行效率。
?????? 在進(jìn)行Hibernate性能優(yōu)化時(shí),需要從以下幾個(gè)方面進(jìn)行考慮:
●?? 數(shù)據(jù)庫設(shè)計(jì)調(diào)整。
●?? HQL優(yōu)化。
●?? API的正確使用(如根據(jù)不同的業(yè)務(wù)類型選用不同的集合及查詢API)。
●?? 主配置參數(shù)(日志、查詢緩存、fetch_size、batch_size等)。
●?? 映射文件優(yōu)化(ID生成策略、二級(jí)緩存、延遲加載、關(guān)聯(lián)優(yōu)化)。
●?? 一級(jí)緩存的管理。
●?? 針對(duì)二級(jí)緩存,還有許多特有的策略。
●?? 事務(wù)控制策略。
?????? 數(shù)據(jù)的查詢性能往往是影響一個(gè)應(yīng)用系統(tǒng)性能的主要因素。對(duì)查詢性能的影響會(huì)涉及到系統(tǒng)軟件開發(fā)的各個(gè)階段,例如,良好的設(shè)計(jì)、正確的查詢方法、適當(dāng)?shù)木彺娑加欣谙到y(tǒng)性能的提升。
?????? 系統(tǒng)性能的提升設(shè)計(jì)到系統(tǒng)中的各個(gè)方面,是一個(gè)相互平衡的過程,需要在應(yīng)用的各個(gè)階段都要考慮。并且在開發(fā)、運(yùn)行的過程中要不斷地調(diào)整和優(yōu)化才能逐步提升系統(tǒng)的性能。
posted on 2009-07-19 21:30
jadmin 閱讀(49)
評(píng)論(0) 編輯 收藏