![數(shù)據(jù)庫課件:第八章 并發(fā)控制_第1頁](http://file4.renrendoc.com/view/8d57d4ba3fbcd0289e112b9786d45278/8d57d4ba3fbcd0289e112b9786d452781.gif)
![數(shù)據(jù)庫課件:第八章 并發(fā)控制_第2頁](http://file4.renrendoc.com/view/8d57d4ba3fbcd0289e112b9786d45278/8d57d4ba3fbcd0289e112b9786d452782.gif)
![數(shù)據(jù)庫課件:第八章 并發(fā)控制_第3頁](http://file4.renrendoc.com/view/8d57d4ba3fbcd0289e112b9786d45278/8d57d4ba3fbcd0289e112b9786d452783.gif)
![數(shù)據(jù)庫課件:第八章 并發(fā)控制_第4頁](http://file4.renrendoc.com/view/8d57d4ba3fbcd0289e112b9786d45278/8d57d4ba3fbcd0289e112b9786d452784.gif)
![數(shù)據(jù)庫課件:第八章 并發(fā)控制_第5頁](http://file4.renrendoc.com/view/8d57d4ba3fbcd0289e112b9786d45278/8d57d4ba3fbcd0289e112b9786d452785.gif)
版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、 所有事務串行起來的調(diào)度策略一定是正確的調(diào)度,盡管不同調(diào)度的執(zhí)行結(jié)果可能不同 并發(fā)事務的執(zhí)行是正確的,當且僅當其結(jié)果與某一串行執(zhí)行的結(jié)果相同第八章 并發(fā)控制 8.5 并發(fā)事務的可串行性讀 B=2A=B+1寫回A讀 A=3B=A+1寫回B 初始: A=2 B=2 A=3 B=4 A=4 B=3 讀 A=2B=A+1寫回B讀 B=3A=B+1寫回A串行調(diào)度 初始: A=2 B=2 Slock BY=B=2Unlock BXlock AA=Y+1寫回AUnlock ASlock AX=A=2Unlock AXlock BB=X+1寫回BUnlock B A=3 B=3 第八章 并發(fā)控制 8.5 并發(fā)
2、事務的可串行性不可串行化的調(diào)度1、何為兩斷鎖協(xié)議1) 第一階段是獲得封鎖(擴展階段): 在對任何數(shù)據(jù)進行讀寫之前,事務 先要申請并獲得對該數(shù)據(jù)的封鎖。2) 第二階段是釋放封鎖(收縮階段): 在釋放一個封鎖后,事務不再申請 和獲得任何其他封鎖。例如:事務T1遵守兩斷鎖協(xié)議 SlockA SlockB XlockC UnlockB UnlockA UnlockC擴展階段收縮階段例如:事務T2不遵守兩斷鎖協(xié)議 SlockA UnlockA SlockB XlockC UnlockB UnlockC 遵守兩斷鎖協(xié)議的調(diào)度策略是可串行化的調(diào)度策略Slock B讀 B=2Y=BXlock AA=Y+1寫A
3、=3Unlock BUnlock ASlock A等待等待等待等待獲得Slock A讀A=3X=AXlock BB=X+1寫回B=4Unlock AUnlock B第八章 并發(fā)控制 8.6 兩斷鎖協(xié)議右下圖所示是遵守該協(xié)議的另一個可串行化調(diào)度 T2T1 先T1后T2結(jié)果為 F=1, G=0, H=2 先T2后T1結(jié)果為 F=1, G=0, H=1 注意:不同于上例 右邊的兩事務真正 在并發(fā)執(zhí)行Slock F讀 F=0TEMPA=FXlock HUnlock FH=TEMPA+1寫H=1Unlock HSlock G讀G=0TEMPB=GXlock FF=TEMPB+1寫回F=1Unlock G
4、Unlock F第八章 并發(fā)控制 8.6 兩斷鎖協(xié)議初值F、G、H 0、0、0初值F、G、H 1、0、0初值F、G、H 1、0、12、兩斷鎖協(xié)議與可串行化調(diào)度 該協(xié)議保證并行調(diào)度是可串行化的注意:1) 該協(xié)議是充分條件,而非必要 條件,右圖所示是可串行化調(diào)度, 但不遵守該協(xié)議 2) 兩斷鎖協(xié)議與防止死鎖的 一次封鎖法的異同之處 一次封鎖法遵守兩斷鎖協(xié)議,但兩斷鎖協(xié)議 并不要求一次全部加鎖,故仍有可能發(fā)生死鎖 右圖所示是遵守 該協(xié)議,但發(fā)生死鎖Slock B讀 B=2Y=BUnlock BXlock AA=Y+1寫A=3Unlock ASlock A等待等待獲得Slock A讀A=3X=AUnl
5、ock AXlock BB=X+1寫回B=4Unlock B第八章 并發(fā)控制 8.6 兩斷鎖協(xié)議Slock B讀 B=2Xlock A等待等待Slock A讀 A=2Xlock B等待右下圖所示是可串行化調(diào)度,但不遵守該協(xié)議 T2T1 先T1后T2結(jié)果為 F=1, G=0, H=2 先T2后T1結(jié)果為 F=1, G=0, H=1 注意:不同于上例 右邊的兩事務真正 在并發(fā)執(zhí)行Slock F讀 F=0TEMPA=FUnlock FXlock HH=TEMPA+1寫H=1Unlock HSlock G讀G=0TEMPB=GUnlock GXlock FF=TEMPB+1寫回F=1Unlock F第
6、八章 并發(fā)控制 8.6 兩斷鎖協(xié)議初值F、G、H 0、0、0初值F、G、H 1、0、0初值F、G、H 1、0、1封鎖粒度與代價的關系封鎖粒度越大,系統(tǒng)開銷越小,并發(fā)度也越小。封鎖粒度越小,系統(tǒng)開銷越大,并發(fā)度也越大。一、多粒度封鎖1、多粒度封鎖協(xié)議中對一個結(jié)點加鎖意味著這個結(jié)點的所有后裔結(jié)點也被加以同樣類型的鎖。2、顯式加鎖:事務直接加到數(shù)據(jù)對象上的鎖隱式加鎖:事務沒有直接對該數(shù)據(jù)對象加鎖,是由于其上級結(jié)點加鎖而使該數(shù)據(jù)對象也加上了鎖顯式加鎖和隱式加鎖的效果是一樣的3、系統(tǒng)檢查封鎖沖突時,首先檢查該數(shù)據(jù)對象上有無顯式封鎖與之沖突,再檢查其所有上級結(jié)點,看本事務第八章 并發(fā)控制 8.7 封鎖的粒
7、度的顯式封鎖是否與該數(shù)據(jù)對象上的隱式加鎖(上級結(jié)點加鎖造成的)沖突,最后檢查其所有下級結(jié)點,看上面的顯式封鎖是否與本事務的隱式加鎖沖突。 數(shù)據(jù)庫關系R1 關系Rn元組 元組 元組 元組二、意向鎖對任一結(jié)點加鎖時,必須先對它的上層結(jié)點加意向鎖申請封鎖時,按自上而下的次序進行釋放封鎖時,按自下而上的次序進行第八章 并發(fā)控制 8.7 封鎖的粒度IS鎖: 對本結(jié)點加IS鎖,表示它的后裔結(jié)點意向加S鎖IX鎖: 對本結(jié)點加IX鎖,表示它的后裔結(jié)點意向加X鎖SIX鎖: 對本結(jié)點加SIX鎖(即SIX鎖= S鎖+IX鎖),例如:該事務要讀整個表(加S鎖),同時會更新個別元組(所以該表要加IX鎖)。三、鎖的強度鎖
8、的強度是指它對其他鎖的排斥程度,一個事務在申請封鎖時,以強鎖代替弱鎖是安全的,反之則不然。T1 T2XSIXIXSISXXNNNNNSIXSIXNNNNY S IXIXNNYNYISSNNNYYISNYYYY 越來越弱第八章 并發(fā)控制 8.7 封鎖的粒度一、設置隱含事務選項SET IMPLICIT_TRANSACTIONS ON|OFF 1、該設置的默認值為OFF 2、當該設置的值為ON時,執(zhí)行下面的任何語句都激發(fā)一個事務的開始ALTER TABLEFETCHREVOKECREATE GRANTSELECTDELETEINSERTTRUNCATE TABLEDROPOPENUPDATE在事務結(jié)
9、束時,用戶必須明確提交或撤消事務,否則在用戶斷開連接時,事務和它含有的所有數(shù)據(jù)更改都被撤消。詳細信息可參見Help第八章 并發(fā)控制 8.8 SQL Server 7.0中并發(fā)控制二、可鎖定的資源RID鎖定表中的一行Page鎖定一個8KB的數(shù)據(jù)頁或索引頁Extend鎖定多個連續(xù)的數(shù)據(jù)頁或索引頁Table鎖定整個表,包括所有的數(shù)據(jù)和索引Database鎖定整個數(shù)據(jù)庫,在數(shù)據(jù)庫恢復過程中使用三、鎖的類型1、基本鎖:S鎖、X鎖2、特殊鎖: 意向鎖:IS鎖、IX鎖、SIX鎖 更新鎖:更新之前(讀時)為更新鎖,更新時提升為X鎖,更新鎖與S鎖兼容 模式鎖:模式穩(wěn)定鎖、模式更改鎖第八章 并發(fā)控制 8.8 SQ
10、L Server 7.0中并發(fā)控制模式穩(wěn)定鎖:保證(表和索引)被另一個用戶使用時不會被刪除,它與模式更改鎖之外的所有鎖兼容 模式更改鎖:保證(表和索引)被另一個用戶使用時不會被更改,它不與任何鎖兼容。四、鎖的強度 IX鎖與其他IX鎖兼容,因為IX鎖意味著只更新某些行,而不是全部行T1 T2XSIXIXUSISXNNNNNNSIXNNNNNY IXNNYNNYUNNNNYYSNNNYYYISNYYYYY第八章 并發(fā)控制 8.8 SQL Server 7.0中并發(fā)控制五、事務隔離級 在SQL Server 中,鎖是由系統(tǒng)自動發(fā)出的,但用戶可通過設置事務隔離級和表級鎖定選項來控制系統(tǒng)任何加鎖SET
11、TRANSACTION ISOLATION LEVEL READ COMMITTED | READ UNCOMMITTED | REPEATABLE READ | SERIALIZABLE1、該設置的默認值為READ COMMITTED2、各選項的含義如下(這些選項也是SQL92中的選項):READ UNCOMMITTED 讀時不發(fā)共享鎖,READ COMMITTED 讀時發(fā)共享鎖,REPEATABLE READ 讀時發(fā)共享鎖直到事務結(jié)束才釋放SERIALIZABLE 防止其他用戶更新或插入滿足 Where子句中條件的新行第八章 并發(fā)控制 8.8 SQL Server 7.0中并發(fā)控制The
12、four isolation levels allow different types of behavior. Isolation level Dirty read Nonrepeatable read Phantom Read uncommitted Yes Yes Yes Read committed No Yes Yes Repeatable read No No Yes Serializable No No No Transactions must be run at an isolation level of repeatable read or higher to prevent
13、 lost updates that can occur when two transactions each retrieve the same row, and then later update the row based on the originally retrieved values. If the two transactions update rows using a single UPDATE statement and do not base the update on the previously retrieved values, lost updates canno
14、t occur at the default isolation level of read committed.第八章 并發(fā)控制 8.8 SQL Server 7.0中并發(fā)控制五、表級鎖定選項ROWLOCK行鎖PAGLOCK頁鎖TABLOCK使用共享鎖TABLOCKX使用獨占鎖UPDLOCK 讀時使用更新鎖而不是共享鎖,直到事務結(jié)束 NOLOCK READUNCOMMITTEDHOLDLOCK SERIALIZABLEREADUNCOMMITTEDREADCOMMITTEDREPEATABLEREADSERIALIZABLE第八章 并發(fā)控制 8.8 SQL Server 7.0中并發(fā)控制六、死鎖處理1、預防措施鎖定超時SET LOCK_TIMEOUT timeout _ periodtimeout_periodIs the number of milliseconds that will pass before Microsoft SQL Server returns a locking error. A value of -1 (default) indicates no time-out period (that is, wait forever). When a wait for a lock exceeds the time-o
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 丁二烯法合成氯丁橡膠生產(chǎn)裝置項目可行性研究報告模板-備案拿地
- 2024-2025學年河北省尚義縣第一中學等校高二上學期12月月考歷史試卷
- 2025年債務轉(zhuǎn)股權協(xié)議標準格式
- 2025年古園林保護性維護協(xié)議
- 2025年農(nóng)產(chǎn)品交易市場租賃合同模板
- 2025年功能性棚模新材料及各種助劑項目提案報告
- 2025年企業(yè)與個人租車合同模板及規(guī)定
- 2025年長租公寓項目立項申請報告范文
- 2025年家居用品商貿(mào)公司采購協(xié)議書
- 2025年綠色共享汽車合作投資與發(fā)展策劃協(xié)議
- 電力公司主要應急物資清單
- 2023年初中道法九年級上冊知識點匯總(思維導圖)
- 《籃球主修》考核方式
- Unit 3 Times change單元教學設計
- 科室醫(yī)院感染風險評估表
- 山東省食用油(植物油)生產(chǎn)企業(yè)名錄496家
- 《智慧農(nóng)業(yè)》的ppt完整版
- GB∕T 33047.1-2016 塑料 聚合物熱重法(TG) 第1部分:通則
- 經(jīng)濟學市場失靈與政府失靈課件
- 電力業(yè)務許可證豁免證明
- 建筑工程資料歸檔立卷分類表(全)
評論
0/150
提交評論