![MS-SQL事務(wù)隔離級別_第1頁](http://file3.renrendoc.com/fileroot_temp3/2022-2/12/bf092e55-04cd-4c90-8d5e-017630870dce/bf092e55-04cd-4c90-8d5e-017630870dce1.gif)
![MS-SQL事務(wù)隔離級別_第2頁](http://file3.renrendoc.com/fileroot_temp3/2022-2/12/bf092e55-04cd-4c90-8d5e-017630870dce/bf092e55-04cd-4c90-8d5e-017630870dce2.gif)
![MS-SQL事務(wù)隔離級別_第3頁](http://file3.renrendoc.com/fileroot_temp3/2022-2/12/bf092e55-04cd-4c90-8d5e-017630870dce/bf092e55-04cd-4c90-8d5e-017630870dce3.gif)
![MS-SQL事務(wù)隔離級別_第4頁](http://file3.renrendoc.com/fileroot_temp3/2022-2/12/bf092e55-04cd-4c90-8d5e-017630870dce/bf092e55-04cd-4c90-8d5e-017630870dce4.gif)
![MS-SQL事務(wù)隔離級別_第5頁](http://file3.renrendoc.com/fileroot_temp3/2022-2/12/bf092e55-04cd-4c90-8d5e-017630870dce/bf092e55-04cd-4c90-8d5e-017630870dce5.gif)
下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、Oracel和SQL Server并發(fā)性和讀一致性比較事務(wù):事務(wù)是一個不可分割的工作邏輯單元。在數(shù)據(jù)庫系統(tǒng)上執(zhí)行并發(fā)操作時事務(wù)是作為最小的控制單元來使用的SQL server中數(shù)據(jù)庫的默認隔離級別是READ COMMITTED并發(fā)訪問的不利影響并發(fā)訪問,如果沒有并發(fā)訪問控制機制,可能產(chǎn)生的不利影響有以下幾種:臟讀,丟失更新,不可重復(fù)讀,幻像讀1.臟讀:指當(dāng)一個事務(wù)正在訪問數(shù)據(jù),并且對數(shù)據(jù)進行了修改,而這種修改還沒有提交到數(shù)據(jù)庫中,這時,另外一個事務(wù)也訪問這個數(shù)據(jù),然后使用了這個數(shù)據(jù)。因為這個數(shù)據(jù)是還沒有提交的數(shù)據(jù),那么另外一個事務(wù)讀到的這個數(shù)據(jù)是臟數(shù)據(jù),依據(jù)臟數(shù)據(jù)所做的操作可能是不正確的。2.
2、丟失更新:當(dāng)兩個或多個事務(wù)選擇同一行,然后基于最初選定的值更新該行時,會發(fā)生丟失更新問題。每個事務(wù)都不知道其它事務(wù)的存在。最后的更新將重寫由其它事務(wù)所做的更新,這將導(dǎo)致數(shù)據(jù)丟失。3.不可重復(fù)讀:是指在一個事務(wù)內(nèi),多次讀同一數(shù)據(jù)。在這個事務(wù)還沒有結(jié)束時,另外一個事務(wù)也訪問該同一數(shù)據(jù)。那么,在第一個事務(wù)中的兩次讀數(shù)據(jù)之間,由于第二個事務(wù)的修改,那么第一個事務(wù)兩次讀到的的數(shù)據(jù)可能是不一樣的。這樣就發(fā)生了在一個事務(wù)內(nèi)兩次讀到的數(shù)據(jù)是不一樣的,因此稱為是不可重復(fù)讀。4.幻象讀:指當(dāng)事務(wù)不是獨立執(zhí)行時發(fā)生的一種現(xiàn)象,例如第一個事務(wù)對一個表中的數(shù)據(jù)進行了修改,這種修改涉及到表中的全部數(shù)據(jù)行。同時,第二個事務(wù)
3、也修改這個表中的數(shù)據(jù),這種修改是向表中插入一行新數(shù)據(jù)。那么,以后就會發(fā)生操作第一個事務(wù)的用戶發(fā)現(xiàn)表中還有沒有修改的數(shù)據(jù)行,就好象發(fā)生了幻覺一樣。假如有兩個事務(wù)并發(fā),順序如下: 那么在事務(wù)A中,query1跟query2查詢出來的結(jié)果是否一樣呢?這就跟事務(wù)隔離級別有關(guān)了。SQL的標(biāo)準(zhǔn)定義里面,一共有四種級別:1.read uncommited:讀取未提交的數(shù)據(jù).就是其他事務(wù)已經(jīng)修改但還未commit的.2.read commited:讀取已提交的數(shù)據(jù)query2會跟query1讀取的數(shù)據(jù)不一樣.3.repeatable read:可重復(fù)讀取,即query1跟query2讀取的數(shù)據(jù)是一樣的.4.s
4、erializable:序列化.SQL標(biāo)準(zhǔn)用三個必須在并行的事務(wù)之間避免的現(xiàn)象定義了四個級別的事務(wù)隔離。這些不希望發(fā)生的現(xiàn)象是:1.臟讀(dirty reads:一個事務(wù)讀取了被另一個事務(wù)改寫但還沒提交的數(shù)據(jù).2.不可重復(fù)讀(non-repeatable reads:一個事務(wù)重新讀取前面讀取過的數(shù)據(jù),發(fā)現(xiàn)該數(shù)據(jù)已經(jīng)被另一個已提交的事務(wù)修改過(一個事務(wù)執(zhí)行相同的查詢兩次或兩次以上,但每次查詢結(jié)果都不一樣。這由于另一個并發(fā)事務(wù)在兩次查詢之間更新(update了數(shù)據(jù).3.幻讀(phantom read:在兩次查詢同一時間點數(shù)據(jù)時,發(fā)現(xiàn)數(shù)據(jù)數(shù)量發(fā)生改變。(當(dāng)一個事務(wù)讀取幾行記錄后,另一個并發(fā)事務(wù)插入(
5、insert,delete一些記錄. SQLServer我們首先在SQLServer上做了實驗,SQLServer一共支持四種隔離級別,read uncommited跟read commited我們沒有實驗,我們直接先實驗repeatable read.如果事務(wù)A定義了如下級別,那么當(dāng)事務(wù)B執(zhí)行到modify1這條語句時,如果modify1是update的話,就被鎖起來,一直等到事務(wù)A提交完以后,鎖才會被釋放。而如果是insert的話,則可以順利進行下去,然后在事務(wù)A中,query2查到的數(shù)據(jù),是已經(jīng)被事務(wù)B修改過的數(shù)據(jù)。(發(fā)生了幻讀如果將級別定義在serializable的話,則在modif
6、y1語句中,update,insert 或者delete都會被鎖掉。也就是說,SQLServer對這些級別的支持,是通過鎖來做到的,雖然可以保證事務(wù)正常進行,但是并行的性能卻很差。Oracleoracle只支持兩個級別,read commited跟serializable,實驗的結(jié)果是,oracle的serializable是通過版本控制(scn來完成的,而不是通過鎖機制,這就保證了并行的性能。Oracle的默認級別是read commited.的事務(wù)級別Oracle的事務(wù)級別OracleOracle明確支持read committed和serializable、read only三個級別語句
7、級別read committed;語句級別的read committed=serializable的一致性+read uncommited的并發(fā)性讀一致性實現(xiàn)OracleOracle利用Undo Record和MultiversionData實現(xiàn)一致性 Writer will not block reader and vise versa Oracle的定義 When the ORACLE server begins executing a SELECT statement,itdetermines the current SCN and ensure that any changes not
8、 commitedbefore this SCN are not processed by the statement。 select語句只能看到, 在它執(zhí)行那一時間點之前已經(jīng)提交的數(shù)據(jù)。 Mysql 6 MySQL 也支持四個級別,而且 MySQL 也是通過版本控制而非鎖機 制來完成的。 假如有兩個事務(wù)并發(fā),順序如下: MySQL 默認使用的是 REPEATABLE READ .Transaction A 的 第 1, 2,3 次 query 都是一樣的。(query3 好像沒有發(fā)生幻讀,不知道什 么原因, 研究中) 只有第 query4 才顯示 Transaction B 剛剛 insert , 的數(shù)據(jù) Transaction A query3 的時候可以通過 SELE
溫馨提示
- 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030全球印刷柔性電池行業(yè)調(diào)研及趨勢分析報告
- 宣傳片協(xié)議合同
- 2025域名收購合同范文
- 滅火器買賣合同
- 幼兒園聘用保育員合同模板
- 2025非專利項目技術(shù)轉(zhuǎn)讓合同
- 江西省十校協(xié)作體2024-2025學(xué)年高三上學(xué)期第一次聯(lián)考語文含答案
- 委托物業(yè)服務(wù)合同書
- 2025材料采購合同
- 2025電子元件配件采購合同模板
- 充電樁知識培訓(xùn)課件
- 2025年七年級下冊道德與法治主要知識點
- 2025年交通運輸部長江口航道管理局招聘4人歷年高頻重點提升(共500題)附帶答案詳解
- 老年髖部骨折患者圍術(shù)期下肢深靜脈血栓基礎(chǔ)預(yù)防專家共識(2024版)解讀
- 偏癱足內(nèi)翻的治療
- 藥企質(zhì)量主管競聘
- 信息對抗與認知戰(zhàn)研究-洞察分析
- 手術(shù)室??谱o士工作總結(jié)匯報
- 2025屆高三聽力技巧指導(dǎo)-預(yù)讀、預(yù)測
- 蘇州市2025屆高三期初陽光調(diào)研(零模)政治試卷(含答案)
- 2024年安徽省初中學(xué)業(yè)水平考試中考數(shù)學(xué)試卷(真題+答案)
評論
0/150
提交評論