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

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

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
DB2隔離級的正確解讀和試驗(yàn)的描述

此文章主要介紹的是DB2隔離級的解讀和試驗(yàn),在DB2數(shù)據(jù)庫中,一共有4種隔離級,即RS,RR,CS,UR.以下對四種隔離級做一些詳細(xì)的描述,同時(shí)附上個(gè)人對其做試驗(yàn)的結(jié)果。隔離級是影響加鎖策略的重要環(huán)節(jié),它直接影響加鎖的范圍及鎖的持續(xù)時(shí)間。

基本信息

摘要:在DB2中,共有四種隔離級:RS,RR,CS,UR.以下對四種隔離級進(jìn)行一些描述,同時(shí)附上個(gè)人做試驗(yàn)的結(jié)果。隔離級是影響加鎖策略的重要環(huán)節(jié),它直接影響加鎖的范圍及鎖的持續(xù)時(shí)間。兩個(gè)應(yīng)用程序即使執(zhí)行的相同的操作,也可能由于選擇的隔離級的不同而造成加鎖的結(jié)果不同。

隔離級解讀和試驗(yàn)

隔離級是影響加鎖策略的重要環(huán)節(jié),它直接影響加鎖的范圍及鎖的持續(xù)時(shí)間。兩個(gè)應(yīng)用程序即使執(zhí)行的相同的操作,也可能由于選擇的隔離級的不同而造成加鎖的結(jié)果不同。在DB2中,共有四種隔離級:RS,RR,CS,UR.以下對四種隔離級進(jìn)行一些描述,同時(shí)附上個(gè)人做試驗(yàn)的結(jié)果。

讀可靠性(RS-Read Stability)

如果使用這種DB2隔離級,在一個(gè)事務(wù)中所有被讀取過的行上都會被加上NS鎖,直到該事務(wù)被提交或回滾,行上的鎖才會被釋放。這樣可以保證在一個(gè)事務(wù)中即使多次讀取同一行,得到的值不會改變。

但是,如果使用這種隔離級,在一個(gè)事務(wù)中,如果使用同樣的搜索標(biāo)準(zhǔn)重新打開已被處理過的游標(biāo),則結(jié)果集可能改變。(可能會增加某些行,這些行被稱為幻影行(Phantom))。這是因?yàn)镽S隔離級不能阻止通過插入或更新操作在結(jié)果集中加入新行。

個(gè)人筆記:

根據(jù)實(shí)際測試情況,RS模式下:查詢完畢以后,滿足條件的結(jié)果集中的記錄被鎖定,不滿足條件的不被鎖定。

可以對不滿足條件的記錄更新,也可以插入新的記錄。其他人可以查詢滿足已經(jīng)鎖定的記錄,但不可以更新。

重復(fù)讀(RR-Repeat Read)

如果使用這種隔離級,在一個(gè)事務(wù)中所有被讀取過的行上都會被加上S鎖,知道該事務(wù)被提交或回滾,行上的鎖才會被釋放。這樣可以保證在一個(gè)事務(wù)中即使多次讀取同一行,得到的值不會改變。

另外,在同一事務(wù)中如果以同樣的搜索標(biāo)準(zhǔn)重新打開已被處理過的游標(biāo),得到的結(jié)果集不會改變。重復(fù)讀相對于讀可靠性而言,加鎖的范圍更大。

對于讀可靠性,應(yīng)用程序只對符合要求的所有行加鎖,而對于重復(fù)讀,應(yīng)用程序?qū)λ斜粧呙柽^的行都加鎖。例如,如果一個(gè)應(yīng)用程序?qū)σ粋€(gè)表中的 10000行數(shù)據(jù)進(jìn)行掃描,最終找到了100條符合搜索條件的結(jié)果行。如果該應(yīng)用程序使用的是讀可靠性隔離級,應(yīng)用程序?qū)⒅粚@符合條件的100行加鎖;如果該應(yīng)用程序使用的是重復(fù)讀隔離級,應(yīng)用程序?qū)Ρ粧呙柽^的10000行都加鎖。

個(gè)人筆記

根據(jù)實(shí)際測試情況,RR模式下:查詢完畢以后,不可以對不滿足條件的進(jìn)行更新,也不可以插入新記錄??赡茉蚴牵喝绻试S別人更新記錄或者插入新記錄的話,則可能造成原來結(jié)果集的破壞,重新讀的時(shí)候和以前不同。

select for update with rr/rs 是可以用來實(shí)現(xiàn)記錄鎖。是一種特殊情況。即便是RR,仍然可以對其他記錄操作。

游標(biāo)可靠性(CS-Cursor Stability)

如果使用這種隔離級,在一個(gè)事務(wù)中,結(jié)果集中只有正在被讀取的那一行(游標(biāo)指向的行)將被加上NS鎖,其他未被處理的行上不被加鎖。這種隔離級只能保證正在被處理的行的值不會被其他并發(fā)的程序所改變。該隔離級是DB2缺省的隔離級。

個(gè)人筆記

僅僅在游標(biāo)在該行的時(shí)候鎖定,這是一種非常弱的隔離狀態(tài)。

未提交讀(UR-Uncommitted Read)

如果使用這種隔離級,對于只讀操作,不加行鎖。典型的只讀操作包括:

SELECT語句的結(jié)果集只讀(比如語句中包括ORDER BY子句);

定義游標(biāo)是指明起為FOR FETCH ONLY。

該隔離級可以改善應(yīng)用程序的性能,同時(shí)可以最大程度的允許并發(fā)。但是,應(yīng)用程序的數(shù)據(jù)完整性將受到威脅。如果需要讀取未提交的數(shù)據(jù),該隔離級是唯一選擇。

個(gè)人筆記

讀的時(shí)候完全不受限制,對于同一行記錄的完整性也無法保證。

總結(jié)

以上我們所提的隔離級的加鎖范圍和持續(xù)時(shí)間都是針對于讀操作而言的。

對于更改操作,被修改的行上會被加上X鎖,不論使用何種隔離級,X鎖直到提交或回滾之后才會被釋放。


分享題目:DB2隔離級的正確解讀和試驗(yàn)的描述
本文URL:http://m.5511xx.com/article/dhjippe.html