

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、數(shù)據(jù)庫弱一致性四個隔離級別數(shù)據(jù)庫弱一致性四個隔離級別SQL92標準中定義了四個隔離級別,這四個隔離級別在以前版本的SQLServer中即受到支持:READUNCOMMITTEDREADUNCOMMITTED是限制性最弱的隔離級別,因為該級別忽略其他事務(wù)放置的鎖。使用READUNCOMMITTED級別執(zhí)行的事務(wù),可以讀取尚未由其他事務(wù)提交的修改后的數(shù)據(jù)值,這些行為稱為“臟”讀。這是因為在ReadUncommitted級別下,讀取數(shù)據(jù)不需要
2、加級別下,讀取數(shù)據(jù)不需要加S鎖,這樣就不鎖,這樣就不會跟被修改的數(shù)據(jù)上的會跟被修改的數(shù)據(jù)上的X鎖沖突鎖沖突。比如,事務(wù)1修改一行,事務(wù)2在事務(wù)1提交之前讀取了這一行。如果事務(wù)1回滾,事務(wù)2就讀取了一行沒有提交的數(shù)據(jù),這樣的數(shù)據(jù)我們認為是不存在的。READCOMMITTEDREADCOMMITTED(Nonrepeatablereads)是SQLServer默認的隔離級別。該級別通過指定語句不能讀取其他事務(wù)已修改但是尚未提交的數(shù)據(jù)值,禁止
3、執(zhí)行臟讀。在當(dāng)前事務(wù)中的各個語句執(zhí)行之間,其他事務(wù)仍可以修改、插入或刪除數(shù)據(jù),從而產(chǎn)生無法重復(fù)的讀操作,或“影子”數(shù)據(jù)。比如,事務(wù)1讀取了一行,事務(wù)2修改或者刪除這一行并且提交。如果事務(wù)1想再一次讀取這一行,它將獲得修改后的數(shù)據(jù)或者發(fā)現(xiàn)這一樣已經(jīng)被刪除,因此事務(wù)的第二次讀取結(jié)果與第一次讀取結(jié)果不同,因此也叫不可重復(fù)讀。實驗實驗1query1:事務(wù)1step1:創(chuàng)建實驗數(shù)據(jù)intoEmployeefromAdventureWks.Huma
4、nResources.EmployeealtertableEmployeeaddconstraintpk_Employee_EmployeeIDprimarykey(EmployeeID)step2:設(shè)置隔離級別這是數(shù)據(jù)庫的默認隔離界別SETTRANSACTIONISOLATIONLEVELREADCOMMITTEDstep3:開啟第一個事務(wù)BEGINTRANtran1step4:執(zhí)行操作查看VacationHours對查找的記錄加S鎖
5、,在語句執(zhí)行完以后自動釋放S鎖EmployeeIDVacationHoursFROMEmployeeWHEREEmployeeID=4step5:查看當(dāng)前加鎖情況沒有發(fā)現(xiàn)在Employee表上面有鎖這是因為當(dāng)前的隔離界別是READCOMMITTED在執(zhí)行完step2以后馬上釋放了S鎖.然后我們回到事務(wù)1當(dāng)中再次執(zhí)行查詢語句,我們會發(fā)現(xiàn)查詢被阻塞,我們新建一個查詢query3來查看這個時候的鎖狀況,其查詢結(jié)果如下,我們可以發(fā)現(xiàn)查詢操作需要
6、在KEY級別上申請S鎖,在Page和表(Object)上面申請IS鎖,但是因為Key上面原先有了X鎖,與當(dāng)前讀操作申請的S鎖沖突,所以這一步處于WAIT狀態(tài)。如果此時提交事務(wù)2的update操作,那么事務(wù)1的操作不再被阻塞,得到查詢結(jié)果,但是我們發(fā)現(xiàn)此時得到的查詢結(jié)果與第一次得到的查詢結(jié)果不同,這也是為什么將readcommitted稱為不可重復(fù)讀,因為同一個事物內(nèi)的兩次相同的查詢操作的結(jié)果可能不同。REPEATABLEREADREPE
7、ATABLEREAD是比READCOMMITTED限制性更強的隔離級別。該級別包括READCOMMITTED,并且另外指定了在當(dāng)前事務(wù)提交之前,其他任何事務(wù)均不可以修改或刪除當(dāng)前事務(wù)已讀取的數(shù)據(jù)。并發(fā)性低于READCOMMITTED,因為已讀數(shù)據(jù)的共享鎖在整個事務(wù)期間持有,而不是在每個語句結(jié)束時釋放。比如,事務(wù)1讀取了一行,事務(wù)2想修改或者刪除這一行并且提交,但是因為事務(wù)1尚未提交,數(shù)據(jù)行中有事務(wù)1的鎖,事務(wù)2無法進行更新操作,因此事務(wù)
8、2阻塞。如果這時候事務(wù)1想再一次讀取這一行,它讀取結(jié)果與第一次讀取結(jié)果相同,因此叫可重復(fù)讀。實驗實驗2query1:事務(wù)1step1:創(chuàng)建實驗數(shù)據(jù)intoEmployeefromAdventureWks.HumanResources.EmployeealtertableEmployeeaddconstraintpk_Employee_EmployeeIDprimarykey(EmployeeID)step2:設(shè)置隔離級別SETTRANS
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- mysql集群解決方案
- 具有高可用性的負載均衡技術(shù)的研究與實現(xiàn).pdf
- 多種數(shù)據(jù)庫高可用性解決方案對比分析
- linux下的高可用負載均衡服務(wù)器集群
- 服務(wù)器負載均衡解決方案
- 多入口條件下的WEB網(wǎng)站負載均衡高可用性的研究.pdf
- 高可用性集群成員仲裁與數(shù)據(jù)保護研究.pdf
- 高可用性雙層對等環(huán)集群的研究與設(shè)計.pdf
- 高可用性集群互連結(jié)構(gòu)的研究與設(shè)計.pdf
- Storm集群的高可用性關(guān)鍵技術(shù)研究.pdf
- 高可用性附網(wǎng)存儲集群的研究與實現(xiàn).pdf
- 基于LVS的高可用負載均衡集群系統(tǒng)的設(shè)計與實現(xiàn).pdf
- HDFS高可用性方案的研究與設(shè)計.pdf
- 基于Linux的高可用性集群技術(shù)的研究與應(yīng)用.pdf
- SDN集群控制器高可用性研究與設(shè)計.pdf
- f5服務(wù)器負載均衡解決方案
- 結(jié)構(gòu)化P2P自適應(yīng)高可用性負載均衡策略的研究與仿真.pdf
- 分布式MongoDB集群高可用性的研究和性能優(yōu)化.pdf
- 基于預(yù)測的高可用性Web集群模型設(shè)計與算法研究.pdf
- 數(shù)據(jù)庫集群系統(tǒng)高可用性的研究與應(yīng)用.pdf
評論
0/150
提交評論