




下載本文檔
版權(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ù)事務(wù)隔離級(jí)別與鎖一,事務(wù)的4個(gè)基本特征 Atomic(原子性): 事務(wù)中包含的操作被看做一個(gè)邏輯單元,這個(gè)邏輯單元中的操作要 么全部成功,要么全部失敗。 Consistency(一致性): 只有合法的數(shù)據(jù)可以被寫(xiě)入數(shù)據(jù)庫(kù),否則事務(wù)應(yīng)該將其回滾到最初 狀態(tài)。 Isolation(隔離性): 事務(wù)允許多個(gè)用戶對(duì)同一個(gè)數(shù)據(jù)進(jìn)行并發(fā)訪問(wèn),而不破壞數(shù)據(jù)的正 確性和完整性。同時(shí),并行事務(wù)的修改必須與其他并行事務(wù)的修改 相互獨(dú)立。 Durability(持久性): 事務(wù)結(jié)束后,事務(wù)處理的結(jié)果必須能夠得到固化。 以上屬于廢話 二,為什么需要對(duì)事務(wù)并發(fā)控制 如果不對(duì)事務(wù)進(jìn)行并發(fā)控制,我們看看數(shù)據(jù)庫(kù)并發(fā)操作
2、是會(huì)有那些異常情形Lost update: 兩個(gè)事務(wù)都同時(shí)更新一行數(shù)據(jù),但是第二個(gè)事務(wù)卻中途失敗退出, 導(dǎo)致對(duì)數(shù)據(jù)的兩個(gè)修改都失效了。Dirty Reads: 一個(gè)事務(wù)開(kāi)始讀取了某行數(shù)據(jù),但是另外一個(gè)事務(wù)已經(jīng)更新了此數(shù) 據(jù)但沒(méi)有能夠及時(shí)提交。這是相當(dāng)危險(xiǎn)的,因?yàn)楹芸赡芩械牟僮?都被回滾。 Non-repeatable Reads: 一個(gè)事務(wù)對(duì)同一行數(shù)據(jù)重復(fù)讀取兩次,但是卻得到了不同的結(jié)果。 Second lost updates problem: 無(wú)法重復(fù)讀取的特例。有兩個(gè)并發(fā)事務(wù)同時(shí)讀取同一行數(shù)據(jù),然后其 中一個(gè)對(duì)它進(jìn)行修改提交,而另一個(gè)也進(jìn)行了修改提交。這就會(huì)造成 第一次寫(xiě)操作失效。 P
3、hantom Reads: 事務(wù)在操作過(guò)程中進(jìn)行兩次查詢,第二次查詢的結(jié)果包含了第一次查 詢中未出現(xiàn)的數(shù)據(jù)(這里并不要求兩次查詢的SQL語(yǔ)句相同)。這是 因?yàn)樵趦纱尾樵冞^(guò)程中有另外一個(gè)事務(wù)插入數(shù)據(jù)造成的。 三, 數(shù)據(jù)庫(kù)的隔離級(jí)別 為了兼顧并發(fā)效率和異常控制,在標(biāo)準(zhǔn)SQL規(guī)范中,定義了4個(gè)事務(wù)隔離級(jí)別,(ORACLE和SQLSERER對(duì)標(biāo)準(zhǔn)隔離級(jí)別有不同的實(shí)現(xiàn) )Read Uncommitted: 直譯就是"讀未提交",意思就是即使一個(gè)更新語(yǔ)句沒(méi)有提交,但是別 的事務(wù)可以讀到這個(gè)改變.這是很不安全的. Read Committed: 直譯就是"讀提交",意
4、思就是語(yǔ)句提交以后即執(zhí)行了COMMIT以后 別的事務(wù)就能讀到這個(gè)改變. Repeatable Read: 直譯就是"可以重復(fù)讀",這是說(shuō)在同一個(gè)事務(wù)里面先后執(zhí)行同一個(gè) 查詢語(yǔ)句的時(shí)候,得到的結(jié)果是一樣的. Serializable: 直譯就是"序列化",意思是說(shuō)這個(gè)事務(wù)執(zhí)行的時(shí)候不允許別的事務(wù) 并發(fā)執(zhí)行. 四,隔離級(jí)別對(duì)并發(fā)的控制 下表是各隔離級(jí)別對(duì)各種異常的控制能力。LUDRNRRSLUPRRUYYYYYRCNNYYYRRNNNNYSNNNNN(注:LU:丟失更新;DR:臟讀;NRR:非重復(fù)讀;SLU:二類丟失更新;PR:幻像讀)順便舉一小例。MS_S
5、QL:-事務(wù)一set transaction isolation level serializablebegin traninsert into test values('xxx')-事務(wù)二set transaction isolation level read committedbegin transelect * from test-事務(wù)三set transaction isolation level read uncommittedbegin transelect * from test在查詢分析器中執(zhí)行事務(wù)一后,分別執(zhí)行事務(wù)二,和三。結(jié)果是事務(wù)二會(huì)等待,而事務(wù)三則會(huì)執(zhí)行
6、。ORACLE:-事務(wù)一set transaction isolation level serializable;insert into test values('xxx');select * from test;-事務(wù)二set transaction isolation level read committed-ORACLE默認(rèn)級(jí)別select * from test執(zhí)行事務(wù)一后,執(zhí)行事務(wù)二。結(jié)果是事務(wù)二只讀出原有的數(shù)據(jù),無(wú)視事務(wù)一的插入操作。讀者是否發(fā)現(xiàn)MS_SQL和ORACLE對(duì)并發(fā)控制的處理有所不同呢?五,鎖 下表是鎖的兼容或沖突情形。現(xiàn)有 S U X請(qǐng)求S Y Y N
7、U Y N NX N N N現(xiàn)有SUX申請(qǐng)SYYNUYNNXNNNoracle: 六,隔離級(jí)別與鎖 七,注意點(diǎn)一般處理并發(fā)問(wèn)題時(shí)的步驟:1、開(kāi)啟事務(wù)。2、申請(qǐng)寫(xiě)權(quán)限,也就是給對(duì)象(表或記錄)加鎖。3、假如失敗,則結(jié)束事務(wù),過(guò)一會(huì)重試。4、假如成功,也就是給對(duì)象加鎖成功,防止其他用戶再用同樣的方式打開(kāi)。5、進(jìn)行編輯操作。6、寫(xiě)入所進(jìn)行的編輯結(jié)果。7、假如寫(xiě)入成功,則提交事務(wù),完成操作。8、假如寫(xiě)入失敗,則回滾事務(wù),取消提交。9、(7.8)兩步操作已釋放了鎖定的對(duì)象,恢復(fù)到操作前的狀態(tài)。對(duì)多表的操作最好一起取得鎖,或則保證處理順序;個(gè)人感覺(jué)還是前者好,雖然效率低一些八,附 查看鎖ORACLE:select object_name,session_id,os_user_name,oracle_usernam
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 《嬰幼兒行為觀察與記錄》 項(xiàng)目六任務(wù)二思考與練習(xí)答案
- 基本公共衛(wèi)生服務(wù)項(xiàng)目政策解析
- 代理銷售合同
- 房屋抵債協(xié)議書(shū)參考
- 不要孩子雙方同意離婚合同
- 2025年公司遷移是否合法地導(dǎo)致員工合同終止
- 2025綜合裝修合同范本
- 項(xiàng)目合作協(xié)議范本
- 講師合作合同協(xié)議
- 2025租房合同附件格式
- 中小學(xué)教育懲戒規(guī)則培訓(xùn)
- 海南省三亞購(gòu)房合同
- 產(chǎn)科學(xué)說(shuō):臀位分娩的醫(yī)學(xué)探討
- GB/T 44692.1-2024危險(xiǎn)化學(xué)品企業(yè)設(shè)備完整性第1部分:管理體系要求
- 骨科查體-骨科體格檢查-四肢(精制醫(yī)學(xué))
- CT設(shè)備維保項(xiàng)目實(shí)施方案
- 約克冷水機(jī)組年度維護(hù)保養(yǎng)方案
- 中國(guó)鹽業(yè)集團(tuán)有限公司招聘筆試題庫(kù)2024
- 物資拆裝搬運(yùn)服務(wù)方案
- 培養(yǎng)自我認(rèn)知能力-心理健康教案
- 建筑制圖與識(shí)圖教學(xué)課件:第八章 結(jié)構(gòu)施工圖
評(píng)論
0/150
提交評(píng)論