高并發(fā)測(cè)試下的一些問(wèn)題及解決1_第1頁(yè)
高并發(fā)測(cè)試下的一些問(wèn)題及解決1_第2頁(yè)
高并發(fā)測(cè)試下的一些問(wèn)題及解決1_第3頁(yè)
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

第第頁(yè)高并發(fā)測(cè)試下的一些問(wèn)題及解決[1]高并發(fā)測(cè)試下的一些問(wèn)題及解決[1]

發(fā)表于:2023-03-18來(lái)源::點(diǎn)擊數(shù):標(biāo)簽:解決

高并發(fā)測(cè)試下的一些問(wèn)題及解決[1]軟件測(cè)試工具測(cè)試在sqlserver2000上進(jìn)行,對(duì)工作流操作的相關(guān)方法在單元測(cè)試?yán)镞M(jìn)行多線程并發(fā)。測(cè)試發(fā)現(xiàn)sqlserver出現(xiàn)死鎖的情況相當(dāng)多,一些典型的情況:1、對(duì)同一張表先insert再update是很快會(huì)引起死鎖的,不管操

高并發(fā)測(cè)試下的一些問(wèn)題及解決[1]軟件測(cè)試工具

測(cè)試在sqlserver2000上進(jìn)行,對(duì)工作流操作的相關(guān)方法在單元測(cè)試?yán)镞M(jìn)行多線程并發(fā)。測(cè)試發(fā)現(xiàn)sqlserver出現(xiàn)死鎖的情況相當(dāng)多,一些典型的情況:

1、對(duì)同一張表先insert再update是很快會(huì)引起死鎖的,不管操作的是否是同一記錄

解決方法:對(duì)于同一記錄,需要調(diào)整hibernate的映射策略,使得一次insert完成操作。對(duì)于不同的記錄需要在代碼中手動(dòng)flush,使得update先于insert。

2、對(duì)兩張表進(jìn)行多次update操作時(shí),兩張表交替update也會(huì)很快引起死鎖

解決方法:在代碼中手動(dòng)flush,保證對(duì)兩張表的update不會(huì)出現(xiàn)交替的情況。

3、部分大范圍掃描的select和update混合也會(huì)導(dǎo)致死鎖

解決方法:優(yōu)化sql,盡量減少sql語(yǔ)句,通過(guò)給po增加持久化字段的方式減少關(guān)聯(lián)查詢

經(jīng)過(guò)優(yōu)化,大部分情況下數(shù)據(jù)庫(kù)死鎖的情況得以避免,另外奇怪的是通過(guò)事件探查器在死鎖時(shí)并未發(fā)現(xiàn)鎖升級(jí)的事件。但是在一些特殊情況下(例如多個(gè)并發(fā)匯聚的直接聯(lián)合),死鎖依舊發(fā)生。最后不得不對(duì)方法進(jìn)行synchronized關(guān)鍵字同步,這個(gè)通過(guò)synchronizedflush完成。業(yè)務(wù)方法不必同步,最后批量操作數(shù)據(jù)庫(kù)時(shí)進(jìn)行同步。

換oracle進(jìn)行測(cè)試,在未synchronized的情況下,未發(fā)生死鎖情況。由此可見(jiàn)sqlserver與oracle鎖實(shí)現(xiàn)機(jī)制存在很大的差別。另,同事說(shuō),sqlserver2023后性能和機(jī)制發(fā)生了很大的變化,未測(cè)試。軟件測(cè)試

補(bǔ)充一下我的一個(gè)最簡(jiǎn)單情況下的測(cè)試用例:PO:

viewplaincopytoclipboardprint?

publicclassTestPO{

Stringid;

Stringname;

intnum;

}

publicclassTestPO{

Stringid;

Stringname;

intnum;

}

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論