




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、.多用戶數(shù)據(jù)庫(kù)環(huán)境下DB2事務(wù)及鎖淺談使用單用戶數(shù)據(jù)庫(kù)時(shí),每個(gè)事務(wù)都是順序執(zhí)行的,而不必應(yīng)付與其它事務(wù)的沖突。但是,在多用戶數(shù)據(jù)庫(kù)環(huán)境下,多個(gè)事務(wù)可以同步執(zhí)行,并且每個(gè)事務(wù)都有可能與其它正在運(yùn)行的事務(wù)發(fā)生沖突。在多用戶環(huán)境下,假設(shè)不將事務(wù)彼此隔分開(kāi)來(lái),就會(huì)發(fā)生四種現(xiàn)象:1喪失更新:這種事件發(fā)生在兩個(gè)事務(wù)讀取和嘗試更新同一數(shù)據(jù)時(shí),其中一個(gè)更新會(huì)喪失。例如:事務(wù)1和事務(wù)2讀取同一行數(shù)據(jù),并都根據(jù)所讀取的數(shù)據(jù)計(jì)算出該行的新值。假設(shè)事務(wù)1用其新值更新該行以后,事務(wù)2又更新了同一行,那么事務(wù)1所執(zhí)行的更新操作就喪失了。由于設(shè)計(jì)的方法,DB2通用數(shù)據(jù)庫(kù)不允許發(fā)生此類現(xiàn)象。2臟讀:當(dāng)事務(wù)讀取尚未提交的數(shù)據(jù)時(shí)
2、,就會(huì)發(fā)生這種事件。例如:事務(wù)1更改了一行數(shù)據(jù),而事務(wù)2在事務(wù)1提交更改之前讀取了已更改的行。假設(shè)事務(wù)1回滾該更改,那么事務(wù)2就會(huì)讀取被認(rèn)為是不曾存在的數(shù)據(jù)。3不可重復(fù)的讀:當(dāng)一個(gè)事務(wù)兩次讀取同一行數(shù)據(jù),但每次獲得不同的數(shù)據(jù)值時(shí),就會(huì)發(fā)生這種事件。例如:事務(wù)1讀取了一行數(shù)據(jù),而事務(wù)2在更改或刪除該行后提交了更改。當(dāng)事務(wù)1嘗試再次讀取該行時(shí),它會(huì)檢索到不同的數(shù)據(jù)值假設(shè)該行已經(jīng)被更新的話,或發(fā)現(xiàn)該行不復(fù)存在了假設(shè)該行被刪除的話。4幻像:當(dāng)最初沒(méi)有看到某個(gè)與搜索條件匹配的數(shù)據(jù)行,而在稍后的讀操作中又看到該行時(shí),就會(huì)發(fā)生這種事件。例如:事務(wù)1讀取滿足某個(gè)搜索條件的一組數(shù)據(jù)行,而事務(wù)2插入了與事務(wù)1搜索
3、條件匹配的新行。假設(shè)事務(wù)1再次執(zhí)行產(chǎn)生原先行集的查詢,那么會(huì)檢索到不同的行集。鎖所謂鎖就是事務(wù)T在對(duì)某個(gè)數(shù)據(jù)對(duì)象-例如表、記錄等-操作之前,先向系統(tǒng)發(fā)出懇求,對(duì)其加鎖,加鎖后事務(wù)T就對(duì)該數(shù)據(jù)對(duì)象有一定的控制,在事務(wù)T釋放它的鎖之前,其它事務(wù)不能更新此數(shù)據(jù)對(duì)象。根本的封鎖類型有兩種:排他鎖Exclusive Locks,簡(jiǎn)稱X鎖和共享鎖Share Locks,簡(jiǎn)稱S鎖。排他鎖又稱為寫(xiě)鎖,假設(shè)事務(wù)T對(duì)數(shù)據(jù)對(duì)象A加上X鎖,那么只允許T讀取和修改A,其它任何事務(wù)都不能再對(duì)A加任何類型的鎖,直到T釋放A上的鎖。這就保證了其它事務(wù)在T釋放A上的鎖之前不能再讀取和修改A。共享鎖又稱為讀鎖,假設(shè)事務(wù)T對(duì)數(shù)據(jù)對(duì)
4、象A加上S鎖,那么事務(wù)T可以讀A但不能修改A,其它事務(wù)只能再對(duì)A加S鎖,而不能加X(jué)鎖,直到T釋放A上的S鎖。這就保證了其它事務(wù)可以讀A,但在T釋放A上的S鎖之前不能對(duì)A做任何修改。鎖的兼容性X S-X NN YS NY Y-Y YY封鎖協(xié)議一級(jí)封鎖協(xié)議:事務(wù)T在修改數(shù)據(jù)R之前必須先對(duì)其加X(jué)鎖,直到事務(wù)完畢才釋放。一級(jí)封鎖協(xié)議可以防止喪失更新,并保證事務(wù)T是可恢復(fù)的。但是不能防止臟讀、不可重復(fù)的讀及幻象。二級(jí)封鎖協(xié)議:一級(jí)封鎖協(xié)議加上事務(wù)T在讀取數(shù)據(jù)R之前必須先對(duì)其加S鎖,讀完后立即釋放S鎖。二級(jí)封鎖協(xié)議可以防止喪失更新、臟讀,但是不能防止不可重復(fù)的讀和幻象。三級(jí)封鎖協(xié)議:一級(jí)封鎖協(xié)議加上事務(wù)T
5、在讀取數(shù)據(jù)R之前必須先對(duì)其加S鎖,直到事務(wù)完畢才釋放S鎖。三級(jí)封鎖協(xié)議可以防止喪失更新、臟讀、不可重復(fù)的讀和幻象。隔離級(jí)別維護(hù)數(shù)據(jù)庫(kù)一致性和數(shù)據(jù)完好性,但又允許多個(gè)應(yīng)用程序同時(shí)訪問(wèn)同一數(shù)據(jù),這樣的特性稱為并發(fā)性。DB2通用數(shù)據(jù)庫(kù)嘗試用來(lái)強(qiáng)迫執(zhí)行并發(fā)性的方法之一是通過(guò)使用隔離級(jí)別,它決定在第一個(gè)事務(wù)訪問(wèn)數(shù)據(jù)時(shí),如何對(duì)其它事務(wù)鎖定或隔離該事務(wù)所使用的數(shù)據(jù)。DB2通用數(shù)據(jù)庫(kù)使用以下隔離級(jí)別來(lái)強(qiáng)迫執(zhí)行并發(fā)性:1可重復(fù)的讀Repeatable Read2讀穩(wěn)定性Read Stability3游標(biāo)穩(wěn)定性Cursor Stability4未提交的讀Uncommitted Read允許其它并發(fā)事務(wù)讀取或更新該
6、表。wordend相關(guān)閱讀:IBM DB2為易寶支付保駕護(hù)航DB2技巧篇:DB2環(huán)境變量管理方法集IBM DB2數(shù)據(jù)庫(kù)關(guān)于日志傳送根底知識(shí)"可重復(fù)的讀"隔離級(jí)別當(dāng)使用可重復(fù)的讀隔離級(jí)別時(shí),在單個(gè)事務(wù)執(zhí)行期間鎖定該事務(wù)引用的所有行。使用這種隔離級(jí)別時(shí),同一事務(wù)屢次發(fā)出的同一個(gè)SELECT語(yǔ)句將始終產(chǎn)生同一結(jié)果;喪失更新、臟讀、不可重復(fù)的讀、幻像都不會(huì)發(fā)生。該隔離級(jí)別對(duì)應(yīng)于三級(jí)封鎖協(xié)議。使用可重復(fù)的讀隔離級(jí)別的事務(wù)可以屢次檢索同一行集,并可以對(duì)它們執(zhí)行任意次操作,直到由提交或回滾操作終止事務(wù);不允許其它事務(wù)執(zhí)行插入、更新或刪除操作,因?yàn)檫@些操作會(huì)在隔離事務(wù)存在期間影響正在被使用
7、的行集。為了確保在"可重復(fù)的讀"隔離級(jí)別下運(yùn)行的事務(wù)所訪問(wèn)的數(shù)據(jù)不會(huì)受其它事務(wù)的負(fù)面影響,所以鎖定了該隔離事務(wù)所引用的每個(gè)行-而不是僅鎖定被實(shí)際檢索和/或修改的那些行。因此,假設(shè)一個(gè)事務(wù)掃描了1000行但只檢索10行,那么所掃描的1000行而不僅是被檢索的10行都會(huì)被鎖定。那么在現(xiàn)實(shí)環(huán)境中這個(gè)隔離級(jí)別是如何工作的呢?假定您擁有一家大型旅館,并有一個(gè)網(wǎng)站,該網(wǎng)站按"先到先效勞"的原那么承受客戶的房間預(yù)訂。假設(shè)您的旅館預(yù)訂應(yīng)用程序是在"可重復(fù)的讀"隔離級(jí)別下運(yùn)行的,當(dāng)客戶檢索某個(gè)日期段內(nèi)的所有可用房間列表時(shí),您將無(wú)法更改那些房間在指定日期
8、范圍內(nèi)的費(fèi)用,而其他客戶也將無(wú)法進(jìn)展或取消將會(huì)更改該列表的預(yù)訂,直到生成該列表的事務(wù)終止為止。對(duì)于第一個(gè)客戶的查詢所指定范圍之外的任何房間,您都可以更改房?jī)r(jià),其他客戶也都可以進(jìn)展或取消房間預(yù)訂。"讀穩(wěn)定性"隔離級(jí)別當(dāng)使用讀穩(wěn)定性隔離級(jí)別時(shí),在單個(gè)事務(wù)執(zhí)行期間,會(huì)鎖定該事務(wù)所檢索的所有行。當(dāng)使用這種隔離級(jí)別時(shí),直到隔離事務(wù)終止之前,其它事務(wù)不能更改隔離事務(wù)讀取的所有行。此外,其它事務(wù)對(duì)其它行所作的更改,在提交之前對(duì)于運(yùn)行在"讀穩(wěn)定性"隔離級(jí)別下的事務(wù)而言是不可見(jiàn)的。因此,當(dāng)使用"讀穩(wěn)定性"隔離級(jí)別時(shí),在同一事務(wù)中屢次發(fā)出SELECT語(yǔ)句
9、可能會(huì)產(chǎn)生不同的結(jié)果。喪失更新、臟讀和不可重復(fù)的讀都不會(huì)發(fā)生;但是,有可能出現(xiàn)幻像。使用"可重復(fù)的讀"隔離級(jí)別時(shí),隔離事務(wù)引用的每一行都被鎖定;但是,在"讀穩(wěn)定性"隔離級(jí)別下,只鎖定隔離事務(wù)實(shí)際檢索和/或修改的行。因此,假設(shè)一個(gè)事務(wù)掃描了1000行但只檢索10行,那么只有被檢索到的10行而不是所掃描的1000行被鎖定。那么,這種隔離級(jí)別會(huì)如何改變旅館預(yù)訂應(yīng)用程序的工作方式呢?如今,當(dāng)一個(gè)客戶檢索某個(gè)日期段內(nèi)的所有可用房間列表時(shí),您可以更改旅館中任何房間的房?jī)r(jià),而其他客戶也可以取消在第一個(gè)客戶的查詢所指定的日期段內(nèi)所保存房間的預(yù)訂。因此,假設(shè)在終止提交查詢
10、的事務(wù)之前再次生成列表,那么產(chǎn)生的新列表中有可能包含新的房?jī)r(jià)或第一次產(chǎn)生列表時(shí)不可用的房間。"游標(biāo)穩(wěn)定性"隔離級(jí)別當(dāng)使用游標(biāo)穩(wěn)定性隔離級(jí)別時(shí),只要隔離事務(wù)所用的游標(biāo)定位在某一行上,就會(huì)鎖定該游標(biāo)所引用的這一行。所獲取的鎖一直有效,直到游標(biāo)重定位通常通過(guò)調(diào)用FETCH語(yǔ)句或隔離事務(wù)終止為止。因此,當(dāng)使用這種隔離級(jí)別時(shí),在同一事務(wù)中屢次發(fā)出SELECT語(yǔ)句可能會(huì)產(chǎn)生不同的結(jié)果。喪失更新和臟讀不會(huì)發(fā)生;但有可能出現(xiàn)不可重復(fù)的讀和幻像。該隔離級(jí)別對(duì)應(yīng)于二級(jí)封鎖協(xié)議。當(dāng)使用"游標(biāo)穩(wěn)定性"隔離級(jí)別的事務(wù)通過(guò)可更新游標(biāo)從表中檢索行時(shí),在游標(biāo)定位在該行上時(shí),其它事務(wù)不能
11、更新或刪除該行。但是,假設(shè)被鎖定的行本身不是用索引訪問(wèn)的,那么其它事務(wù)可以將新的行添加到表,并對(duì)位于被鎖定行前后的行進(jìn)展更新和/或刪除操作。此外,假設(shè)隔離事務(wù)修改了它檢索到的任何行,那么在隔離事務(wù)終止之前,即使在游標(biāo)不再位于這個(gè)被修改的行,其它事務(wù)不能更新或刪除該行。其它事務(wù)在其它行上進(jìn)展的更改,在提交之前對(duì)于使用"游標(biāo)穩(wěn)定性"隔離級(jí)別的事務(wù)是不可見(jiàn)的。缺省情況下,大多數(shù)事務(wù)都使用"游標(biāo)穩(wěn)定性"隔離級(jí)別。這種隔離級(jí)別對(duì)旅館預(yù)訂應(yīng)用程序有什么影響呢?如今,當(dāng)一個(gè)客戶檢索某個(gè)日期段內(nèi)的所有可用房間列表,然后查看關(guān)于所產(chǎn)生的列表上每個(gè)房間的信息時(shí)每次查看一個(gè)房
12、間,您可以更改旅館中任何房間的房?jī)r(jià),而其他客戶可以對(duì)任何日期段的任何房間進(jìn)展或取消預(yù)訂;唯一的例外是第一個(gè)客戶當(dāng)前正在查看的房間。當(dāng)?shù)谝粋€(gè)客戶查看列表中另一個(gè)房間的信息時(shí),對(duì)于這個(gè)新房間也是一樣;您如今可以更改第一個(gè)客戶剛剛查看的房間的房?jī)r(jià),其他客戶也可以預(yù)訂該房間,但不能對(duì)第一個(gè)客戶當(dāng)前正在查看的房間進(jìn)展這些操作。"未提交的讀"隔離級(jí)別在使用未提交的讀隔離級(jí)別的情況中,當(dāng)單個(gè)事務(wù)檢索行時(shí),僅當(dāng)另一個(gè)事務(wù)試圖刪除或更改被檢索的行所在的表時(shí),才會(huì)在單個(gè)事務(wù)期間鎖定這些行。因?yàn)樵谑褂眠@種隔離級(jí)別時(shí),行通常保持未鎖定狀態(tài),所以喪失更新、臟讀、不可重復(fù)的讀和幻像都可能會(huì)發(fā)生。在大多
13、數(shù)情況下,其它事務(wù)對(duì)行所作的更改,在提交或回滾之前對(duì)于使用"未提交的讀"隔離級(jí)別的事務(wù)是可見(jiàn)的。但是,此類事務(wù)不能看見(jiàn)或訪問(wèn)其它事務(wù)所創(chuàng)立的表、視圖或索引,直到那些事務(wù)被提交為止。類似地,假設(shè)其它事務(wù)刪除了現(xiàn)有的表、視圖或索引,使用"未提交的讀"隔離級(jí)別的事務(wù)僅當(dāng)進(jìn)展刪除操作的事務(wù)終止時(shí)才能理解這一情況。這種行為有一個(gè)例外:當(dāng)運(yùn)行在"未提交的讀"隔離級(jí)別下的事務(wù)使用可更新游標(biāo)時(shí),該事務(wù)的行為和在"游標(biāo)穩(wěn)定性"隔離級(jí)別下運(yùn)行一樣,并應(yīng)用"游標(biāo)穩(wěn)定性"隔離級(jí)別的約束。"未提交的讀"
14、;隔離級(jí)別通常用于那些訪問(wèn)只讀表的事務(wù)和/或某些執(zhí)行SELECT語(yǔ)句的事務(wù),這些語(yǔ)句對(duì)其它事務(wù)的未提交數(shù)據(jù)沒(méi)有負(fù)面效果。那么這種隔離級(jí)別對(duì)旅館預(yù)訂應(yīng)用程序有什么影響呢?如今,當(dāng)一個(gè)客戶檢索某個(gè)日期段內(nèi)的所有可用房間列表時(shí),您可以更改旅館中任何房間的房?jī)r(jià),而其它客戶也可以對(duì)任何日期段內(nèi)的任何房間進(jìn)展或取消預(yù)訂。此外,假設(shè)其它客戶取消了預(yù)訂,即使他們還沒(méi)有終止其事務(wù)并將那些取消提交到數(shù)據(jù)庫(kù),所生成的列表就可以包含這些取消預(yù)訂的房間了。選擇適當(dāng)?shù)母綦x級(jí)別選擇用于事務(wù)的適當(dāng)隔離級(jí)別是非常重要的。隔離級(jí)別不僅影響數(shù)據(jù)庫(kù)如何很好地支持并發(fā)性;而且影響包含該事務(wù)的應(yīng)用程序的整體性能。這是因?yàn)楂@取和釋放鎖所需
15、的資源因隔離級(jí)別而異。通常,使用的隔離級(jí)別越嚴(yán)格,對(duì)并發(fā)性提供的支持就越少,而整體性能可能會(huì)越低,因?yàn)橐@取并占有更多的資源。但是,當(dāng)您確定將要使用的最正確隔離級(jí)別時(shí),應(yīng)該通過(guò)確定哪些現(xiàn)象可承受而哪些現(xiàn)象不可承受來(lái)進(jìn)展決策。以下推斷可以用來(lái)幫助您確定在特定環(huán)境中使用哪種隔離級(jí)別:·假設(shè)您正在只讀數(shù)據(jù)庫(kù)上執(zhí)行查詢,或者正在執(zhí)行查詢而不考慮是否有未提交的數(shù)據(jù)值返回,那么使用"未提交的讀"隔離級(jí)別。需要是只讀事務(wù)-不需要較高的數(shù)據(jù)穩(wěn)定性。·假設(shè)您希望在不看見(jiàn)未提交數(shù)據(jù)值的情況下獲得最大的并發(fā)性,那么使用"游標(biāo)穩(wěn)定性"隔離級(jí)別。需要是讀/寫(xiě)事
16、務(wù)-不需要較高的數(shù)據(jù)穩(wěn)定性。·假設(shè)您希望獲得并發(fā)性,并希望限定的行在單個(gè)事務(wù)執(zhí)行期間保持穩(wěn)定,那么使用"讀穩(wěn)定性"隔離級(jí)別。需要是只讀或讀/寫(xiě)事務(wù)-需要較高的數(shù)據(jù)穩(wěn)定性。·假設(shè)您正在執(zhí)行查詢,并且不希望看到對(duì)產(chǎn)生的結(jié)果數(shù)據(jù)集進(jìn)展更改,那么使用"可重復(fù)的讀"隔離級(jí)別。需要是只讀事務(wù)-需要極高的數(shù)據(jù)穩(wěn)定性。多粒度封鎖首先定義多粒度樹(shù)。多粒度樹(shù)的根節(jié)點(diǎn)是整個(gè)數(shù)據(jù)庫(kù),表示最大的數(shù)據(jù)粒度,葉節(jié)點(diǎn)表示最小的數(shù)據(jù)粒度,例如:多粒度封鎖協(xié)議允許多粒度樹(shù)中的每個(gè)節(jié)點(diǎn)被獨(dú)立地加鎖。對(duì)一個(gè)節(jié)點(diǎn)加鎖意味著這個(gè)節(jié)點(diǎn)的所有后裔節(jié)點(diǎn)也被加以同樣類型的鎖。在多粒度鎖
17、中一個(gè)數(shù)據(jù)對(duì)象可能以兩種方式封鎖,顯式封鎖和隱式封鎖。顯式封鎖是應(yīng)事務(wù)要求直接加到數(shù)據(jù)對(duì)象上的鎖;隱式封鎖是該數(shù)據(jù)對(duì)象沒(méi)有獨(dú)立加鎖,而是由于其上級(jí)節(jié)點(diǎn)加鎖而使該數(shù)據(jù)對(duì)象加上了鎖。多粒度封鎖方法中,顯式封鎖和隱式封鎖的效果是一樣的,因此系統(tǒng)檢查封鎖沖突時(shí)不僅檢查顯式封鎖還要檢查隱式封鎖。一般地,對(duì)某個(gè)數(shù)據(jù)對(duì)象加鎖,系統(tǒng)要檢查該數(shù)據(jù)對(duì)象上有無(wú)顯式封鎖與之沖突;還要檢查其所有上級(jí)節(jié)點(diǎn),看本領(lǐng)務(wù)的顯式封鎖是否與該數(shù)據(jù)對(duì)象上的隱式封鎖即由于上級(jí)節(jié)點(diǎn)已加的封鎖造成的沖突;還要檢查其所有下級(jí)節(jié)點(diǎn),看上面的顯式封鎖是否與本領(lǐng)務(wù)的隱式封鎖將加到下級(jí)節(jié)點(diǎn)的封鎖沖突。由于這種方法效率很低,故引進(jìn)一種新型鎖,稱為意向
18、鎖。wordend相關(guān)閱讀:IBM DB2為易寶支付保駕護(hù)航DB2技巧篇:DB2環(huán)境變量管理方法集IBM DB2數(shù)據(jù)庫(kù)關(guān)于日志傳送根底知識(shí)意向鎖給一個(gè)節(jié)點(diǎn)加意向鎖,意味著該節(jié)點(diǎn)下層節(jié)點(diǎn)正在被加鎖;對(duì)任一節(jié)點(diǎn)加鎖時(shí),必須先對(duì)它的上層節(jié)點(diǎn)加意向鎖。于是事務(wù)T要對(duì)表R1加X(jué)鎖時(shí),系統(tǒng)只要檢查根節(jié)點(diǎn)數(shù)據(jù)庫(kù)和表R1是否已加了不相容的鎖,而不再需要搜索和檢查R1中的每一個(gè)記錄是否加了X鎖。下面介紹三種常用的意向鎖:意向共享鎖Intent Share Lock,簡(jiǎn)稱IS鎖;意向排他鎖Intent Exclusive Lock,IX;共享意向排他鎖Share Intent Exclusive Lock,SIX
19、1.IS鎖假設(shè)對(duì)一個(gè)數(shù)據(jù)對(duì)象加IS鎖,表示它的后裔節(jié)點(diǎn)擬加S鎖。例如,要對(duì)某個(gè)記錄加S鎖,那么要首先對(duì)表和數(shù)據(jù)庫(kù)加IS鎖。2.IX鎖假設(shè)對(duì)一個(gè)數(shù)據(jù)對(duì)象加IX鎖,表示它的后裔節(jié)點(diǎn)擬加X(jué)鎖。例如,要對(duì)某個(gè)記錄加X(jué)鎖,那么要首先對(duì)表和數(shù)據(jù)庫(kù)加IX鎖。3.SIX鎖假設(shè)對(duì)一個(gè)數(shù)據(jù)對(duì)象加SIX鎖,表示對(duì)它加S鎖,再加IX鎖,即SIX=S+IX。例如,對(duì)某個(gè)表加SIX鎖,那么表示該事務(wù)要讀整個(gè)表所以要加S鎖,同時(shí)會(huì)更新個(gè)別記錄所以要對(duì)該表加IX鎖。兼容性S XIS IX SIX-S YN YN NY XN YY NN YIS YN YY YY IX NN YY NY SIX NN YN NY-Y YY YY
20、 Y鎖狀態(tài):鎖的類型鎖狀態(tài)確定了對(duì)鎖的所有者允許的訪問(wèn)類型,以及對(duì)鎖定數(shù)據(jù)資源的并發(fā)用戶容許的訪問(wèn)類型。下面的列表說(shuō)明了可用的鎖狀態(tài),按照遞增控制排序:鎖狀態(tài)形式:意向無(wú)Intent None,IN適用對(duì)象:表空間和表描繪:鎖的擁有者可以讀取鎖定表中的數(shù)據(jù)包括未提交數(shù)據(jù),但不能更改這些數(shù)據(jù)。在這種形式中,鎖的擁有者不獲取行級(jí)別的鎖;因此,其它并發(fā)應(yīng)用程序可以讀取和更改表中的數(shù)據(jù)。鎖狀態(tài)形式:意向共享Intent Share,IS適用對(duì)象:表空間和表描繪:鎖的擁有者可以讀取鎖定表中的數(shù)據(jù),但不能更改這些數(shù)據(jù)。同樣,因?yàn)殒i的擁有者不獲取行級(jí)別鎖;所以,其它并發(fā)的應(yīng)用程序仍可以讀取和更改表中的數(shù)據(jù)。
21、當(dāng)事務(wù)擁有表上的意向共享鎖時(shí),就在它所讀取的每個(gè)行上進(jìn)展共享鎖定。當(dāng)事務(wù)不傳達(dá)更新表中行的意圖時(shí),就獲取這種鎖。鎖狀態(tài)形式:下一鍵共享Next Key Share,NS適用對(duì)象:行描繪:鎖擁有者和所有并發(fā)的事務(wù)都可以讀但不能更改鎖定行中的數(shù)據(jù)。這種鎖用來(lái)在使用"讀穩(wěn)定性"或"游標(biāo)穩(wěn)定性"事務(wù)隔離級(jí)別讀取的數(shù)據(jù)上代替共享鎖。鎖狀態(tài)形式:共享S適用對(duì)象:表和行描繪:鎖擁有者和任何其它并發(fā)的事務(wù)都可以讀但不能更改鎖定的表或行中的數(shù)據(jù)。只要表不是使用共享鎖鎖定的,那么該表中的單個(gè)行可以使用共享鎖鎖定。但是,假設(shè)表是用共享鎖定的,那么鎖擁有者不能在該表中獲取行級(jí)別
22、的共享鎖。假設(shè)表或行是用共享鎖鎖定的,那么其它并發(fā)事務(wù)可以讀取數(shù)據(jù),但不能對(duì)它進(jìn)展更改。鎖狀態(tài)形式:意向互斥Intent Exclusive,IX適用對(duì)象:表空間和表描繪:鎖擁有者和任何其它并發(fā)的應(yīng)用程序都可以讀取和更改被鎖定表中的數(shù)據(jù)。當(dāng)鎖擁有者從表讀取數(shù)據(jù)時(shí),它在所讀取的每一行上獲取一個(gè)共享鎖,而在它更新的每一行上獲取更新和互斥鎖。其它并發(fā)的應(yīng)用程序可以讀取和更新鎖定的表。當(dāng)事務(wù)傳達(dá)更新表中行的意圖時(shí),就獲取這種鎖。SELECT FOR UPDATE、UPDATE.WHERE和INSERT語(yǔ)句傳達(dá)更新的意圖。鎖狀態(tài)形式:帶意向互斥的共享Share With Intent Exclusive,SIX適用對(duì)象:表描繪:鎖擁有者可以讀取和更改被鎖定表中的數(shù)據(jù)。鎖擁有者在它更新的行上獲取互斥鎖,但不獲取它讀取的行上的鎖;因此,其它并發(fā)的應(yīng)用程序可以讀取但不能更新被鎖定表中的數(shù)據(jù)。鎖狀態(tài)形式:更新Update,U適用對(duì)象:
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年音樂(lè)教育與藝術(shù)素養(yǎng)考試試卷及答案
- 2025年證券投資與基金管理考試試題及答案
- 2025年法醫(yī)學(xué)專業(yè)考試試卷及答案
- 2025年中級(jí)職稱會(huì)計(jì)考試試題及答案
- 2025年護(hù)士職業(yè)技能考試試卷及答案
- 2025年軍事理論課程考試試卷及答案
- 2025年石油工程師考試試題及答案
- 2025年新媒體運(yùn)營(yíng)考試試卷及答案環(huán)節(jié)
- 2025年信息安全專業(yè)考試試卷及答案
- 童話動(dòng)畫(huà)角色形象授權(quán)及衍生品開(kāi)發(fā)合同
- 雨季冬季施工及臺(tái)風(fēng)、炎熱氣候條件下施工措施
- 長(zhǎng)款厚大衣項(xiàng)目質(zhì)量管理方案
- 幼兒園中班美術(shù)《開(kāi)心帽》課件
- 武進(jìn)經(jīng)濟(jì)發(fā)展集團(tuán)筆試
- 2024年10月廣東省高等教育自學(xué)考試00055企業(yè)會(huì)計(jì)學(xué)試卷及答案
- 微型計(jì)算機(jī)原理及接口技術(shù)知到智慧樹(shù)章節(jié)測(cè)試課后答案2024年秋重慶大學(xué)
- 社會(huì)組織活動(dòng)流程
- 國(guó)家職業(yè)技術(shù)技能標(biāo)準(zhǔn) 6-30-99-00 工業(yè)機(jī)器人系統(tǒng)操作員 人社廳發(fā)2020108號(hào)
- 《地方導(dǎo)游基礎(chǔ)知識(shí)》7.3 青海 地方導(dǎo)游基礎(chǔ)知識(shí)-題庫(kù)及答案
- 小學(xué)美術(shù)人教版六年級(jí)上冊(cè) 教案-點(diǎn)的集合
- 浙江省金華市義烏市東陽(yáng)市2024年小升初英語(yǔ)試卷( 含筆試解析無(wú)聽(tīng)力原文無(wú)音頻)
評(píng)論
0/150
提交評(píng)論