日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢(xún)
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷(xiāo)解決方案
Hibernate性能優(yōu)化全面剖析

Hibernate有很多值得學(xué)習(xí)的地方,這里我們主要介紹Hibernate性能優(yōu)化,包括介紹Java建模、數(shù)據(jù)庫(kù)結(jié)構(gòu)等方面。

Hibernate是對(duì)JDBC的輕量級(jí)封裝,因此在很多情況下Hibernate的性能比直接使用JDBC存取數(shù)據(jù)庫(kù)要低。然而,通過(guò)正確的方法和策略,在使用Hibernate的時(shí)候還是可以非常接近直接使用JDBC時(shí)的效率的,并且,在有些情況下還有可能高于使用JDBC時(shí)的執(zhí)行效率。

在進(jìn)行Hibernate性能優(yōu)化時(shí),需要從以下幾個(gè)方面進(jìn)行考慮:
◆數(shù)據(jù)庫(kù)設(shè)計(jì)調(diào)整。
◆HQL優(yōu)化。
◆API的正確使用(如根據(jù)不同的業(yè)務(wù)類(lèi)型選用不同的集合及查詢(xún)API)。
◆主配置參數(shù)(日志、查詢(xún)緩存、fetch_size、batch_size等)。
◆映射文件優(yōu)化(ID生成策略、二級(jí)緩存、延遲加載、關(guān)聯(lián)優(yōu)化)。
◆一級(jí)緩存的管理。
◆針對(duì)二級(jí)緩存,還有許多特有的策略。
◆事務(wù)控制策略。

數(shù)據(jù)的查詢(xún)性能往往是影響一個(gè)應(yīng)用系統(tǒng)性能的主要因素。對(duì)查詢(xún)性能的影響會(huì)涉及到系統(tǒng)軟件開(kāi)發(fā)的各個(gè)階段,例如,良好的設(shè)計(jì)、正確的查詢(xún)方法、適當(dāng)?shù)木彺娑加欣谙到y(tǒng)性能的提升。

系統(tǒng)性能的提升設(shè)計(jì)到系統(tǒng)中的各個(gè)方面,是一個(gè)相互平衡的過(guò)程,需要在應(yīng)用的各個(gè)階段都要考慮。并且在開(kāi)發(fā)、運(yùn)行的過(guò)程中要不斷地調(diào)整和優(yōu)化才能逐步提升系統(tǒng)的性能。

設(shè)計(jì)階段的考慮問(wèn)題

一個(gè)良好的數(shù)據(jù)庫(kù)結(jié)構(gòu)有利于系統(tǒng)性能的提升。這里所說(shuō)的良好結(jié)構(gòu)的數(shù)據(jù)庫(kù)并不單純是指滿足數(shù)據(jù)庫(kù)設(shè)計(jì)范式的數(shù)據(jù)庫(kù)結(jié)構(gòu)。這是因?yàn)?,按照?shù)據(jù)庫(kù)范式所設(shè)計(jì)的數(shù)據(jù)庫(kù)只能說(shuō)在結(jié)構(gòu)上是***的,沒(méi)有冗余數(shù)據(jù)等問(wèn)題,但在生產(chǎn)過(guò)程中并不一定能獲得***的性能。有時(shí)候適當(dāng)?shù)卦黾右恍?shù)據(jù)的冗余雖然增加了數(shù)據(jù)維護(hù)的難度,但可以極大地簡(jiǎn)化業(yè)務(wù)的查詢(xún),提高數(shù)據(jù)檢索的效率。

在使用Java訪問(wèn)數(shù)據(jù)庫(kù)的時(shí)候,還存在另外一個(gè)問(wèn)題,就是面向?qū)ο蟮腏ava語(yǔ)言與關(guān)系型數(shù)據(jù)庫(kù)之間的矛盾。在這兩者之間必然要涉及到一個(gè)相互轉(zhuǎn)化的問(wèn)題,對(duì)于這個(gè)問(wèn)題是否能夠正確的處理也是影響系統(tǒng)性能的一個(gè)重要因素。

綜合以上提出的各種問(wèn)題,在數(shù)據(jù)庫(kù)設(shè)計(jì)階段要綜合考慮以下三個(gè)方面的因素。

Java建模

在建立Java對(duì)象模型的時(shí)候,要考慮數(shù)據(jù)庫(kù)持久化的方便性,所建立的Java對(duì)象模型應(yīng)該可以很容易地被數(shù)據(jù)所存儲(chǔ) http://storage.it168.com/存儲(chǔ),并且數(shù)據(jù)庫(kù)中表的結(jié)構(gòu)也是越簡(jiǎn)單越好。

數(shù)據(jù)庫(kù)結(jié)構(gòu)

在設(shè)計(jì)數(shù)據(jù)庫(kù)結(jié)構(gòu)的時(shí)候也要考慮到是否可以很容易地用Java對(duì)象去表示。這里并不是簡(jiǎn)單的一個(gè)表對(duì)應(yīng)一個(gè)對(duì)象的直接轉(zhuǎn)換,更重要的是轉(zhuǎn)換后的Java對(duì)象應(yīng)該能夠描述出數(shù)據(jù)間的關(guān)系。

所以在設(shè)計(jì)階段,對(duì)于Java對(duì)象和數(shù)據(jù)庫(kù)結(jié)構(gòu)要進(jìn)行綜合考慮,也就是可以從兩個(gè)方向進(jìn)行考慮,畢竟兩者之間不是一個(gè)時(shí)代的產(chǎn)物,設(shè)計(jì)的結(jié)果應(yīng)該在兩者之間達(dá)到一個(gè)平衡,雖然不能每一方都達(dá)到***,但也不能造成有一方結(jié)構(gòu)很差的情況。就像裝水的木桶,最矮的板子決定水桶的容量。

業(yè)務(wù)需求

前面兩個(gè)因素都是純技術(shù)方面的考慮,在設(shè)計(jì)的過(guò)程中,更重要的是要緊扣業(yè)務(wù)需求。這是因?yàn)槿魏蔚能浖到y(tǒng)都是以業(yè)務(wù)為中心的,那么對(duì)于系統(tǒng)的設(shè)計(jì)也不例外,在設(shè)計(jì)的階段就應(yīng)該考慮業(yè)務(wù)實(shí)現(xiàn)的方便性以及執(zhí)行的效率。一個(gè)良好的結(jié)構(gòu)設(shè)計(jì)不但使業(yè)務(wù)功能的實(shí)現(xiàn)變得非常容易并且可以避免很多復(fù)雜的操作,還可以達(dá)到提升系統(tǒng)性能的目的。

設(shè)計(jì)階段是整個(gè)應(yīng)用系統(tǒng)開(kāi)發(fā)中的根基,其對(duì)軟件的影響僅次于對(duì)系統(tǒng)需求的把握。所以在設(shè)計(jì)階段應(yīng)該對(duì)整個(gè)軟件系統(tǒng)有一個(gè)整體的考慮,這里所說(shuō)的具體設(shè)計(jì)也只是設(shè)計(jì)階段中的很少的一部分,綜合考慮多方面的因素才能達(dá)到更佳的性能。以上是介紹Hibernate性能優(yōu)化。


當(dāng)前題目:Hibernate性能優(yōu)化全面剖析
鏈接分享:http://www.5511xx.com/article/cdcgoep.html