亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > .NET > 正文

知方可補不足~Sqlserver中的幾把鎖和.net中的事務級別

2024-07-21 02:48:09
字體:
來源:轉載
供稿:網友
知方可補不足~Sqlserver中的幾把鎖和.net中的事務級別

回到目錄

當數據表被事務鎖定后,我們再進行select查詢時,需要為with(鎖選項)來查詢信息,如果不加,select將會被阻塞,直到鎖被釋放,下面介紹幾種SQL的鎖選項

SQL的幾把鎖

NOLOCK(不加鎖)

此選項被選中時,SQL Server 在讀取或修改數據時不加任何鎖。 在這種情況下,用戶有可能讀取到未完成事務(Uncommited Transaction)或回滾(Roll Back)中的數據, 即所謂的“臟數據”。HOLDLOCK(保持鎖)

此選項被選中時,SQL Server 會將此共享鎖保持至整個事務結束,而不會在途中釋放。UPDLOCK(修改鎖)

此選項被選中時,SQL Server 在讀取數據時使用修改鎖來代替共享鎖,并將此鎖保持至整個事務或命令結束。使用此選項能夠保證多個進程能同時讀取數據但只有該進程能修改數據。TABLOCK(表鎖)

此選項被選中時,SQL Server 將在整個表上置共享鎖直至該命令結束。 這個選項保證其他進程只能讀取而不能修改數據。PAGLOCK(頁鎖)

此選項為默認選項, 當被選中時,SQL Server 使用共享頁鎖。TABLOCKX(排它表鎖)

此選項被選中時,SQL Server 將在整個表上置排它鎖直至該命令或事務結束。這將防止其他進程讀取或修改表中的數據。

下面看一下.net frameworks平臺關于事務級別的枚舉,它對應于sql的事件級別

namespace System.Transactions{    // 摘要:    //     Specifies the isolation level of a transaction.    public enum IsolationLevel    {        // 摘要:序列化隔離級別,約束力最高,在數據集上放置一個范圍鎖,以防止其他用戶在事務完成之前更新數據集或將行插入數據集內。     // 這是四個隔離級別中限制最大的級別。因為并發級別較低,所以應只在必要時才使用該選項。該選項的作用與在事務內所有 SELECT 語句中的所有表上設置 HOLDLOCK 相同。        //     Volatile data can be read but not modified, and no new data can be added        //     during the transaction.        Serializable = 0,        //        // 摘要:可重復讀的隔離級別,可能出現幻讀,鎖定查詢中使用的所有數據以防止其他用戶更新數據,但是其他用戶可以將新的幻像行插入數據集,        // 且幻像行包括在當前事務的后續讀取中。因為并發低于默認隔離級別,所以應只在必要時才使用該選項。        //     Volatile data can be read but not modified during the transaction.New data        //     can be added during the transaction.        RepeatableRead = 1,        //        // 摘要:不能讀但可修改,可能出現不可重復讀,指定在讀取數據時控制共享鎖以避免臟讀,但數據可在事務結束前更改,        // 從而產生不可重復讀取或幻像數據。該選項是 SQL Server 的默認值。        //     Volatile data cannot be read during the transaction, but can be modified.        ReadCommitted = 2,        //        // 摘要:可以讀也可以修改,可能出現臟數據,執行臟讀或 0 級隔離鎖定,這表示不發出共享鎖,也不接受排它鎖。        // 當設置該選項時,可以對數據執行未提交讀或臟讀;在事務結束前可以更改數據內的數值,行也可以出現在數據集中或從數據集消失。這是四個隔離級別中限制最小的級別。        //     Volatile data can be read and modified during the transaction.        ReadUncommitted = 3,        //        // 摘要:忽略數據的修改,得到修改前的數據        //     Volatile data can be read.Before a transaction modifies data, it verifies        //     if another transaction has changed the data after it was initially read.If        //     the data has been updated, an error is raised.This allows a transaction to        //     get to the PReviously committed value of the data.        Snapshot = 4,        //        // 摘要:        //     The pending changes from more highly isolated transactions cannot be overwritten.        Chaos = 5,        //        // 摘要:        //     A different isolation level than the one specified is being used, but the        //     level cannot be determined.An exception is thrown if this value is set.        Unspecified = 6,    }}

對于事務級別的總結

下面是在嵌套事務中經常遇到的情況

 ?。薄?臟讀:一個事務會讀進還沒有被另一個事務提交的數據,所以你會看到一些最后被另一個事務回滾掉的數據?! 。病?讀值不可復現:一個事務讀進一條記錄,另一個事務更改了這條記錄并提交完畢,這時候第一個事務再次讀這條記錄時,它已經改變了?! 。? 幻影讀:一個事務用select子句來檢索一個表的數據,另一個事務insert一條新的記錄,并且符合select條件,這樣,第一個事務用同一個select條件來檢索數據后,就會多出一條記錄。

下面是IsolationLevel級別在使用過程中的一些說明(來自博文:http://www.cnblogs.com/CN5135/archive/2011/10/24/2222350.html)

ReadCommitted: 假設A事務對正在讀取數據Data放置了共享鎖,那么Data不能被其它事務改寫,所以當B事務對Data進行讀取時總和A讀取的Data數據是一致的,所以避免了臟讀。由于在A沒有提交之前可以對Data進行改寫,那么B讀取到的某個值可能會在其讀取后被A更改從而導致了該值不能被重復取得;或者當B再次用相同的where字句時得到了和前一次不一樣數據的結果集,也就是幻像數據。

ReadUncommitted:假設A事務即不發布共享鎖,也不接受獨占鎖,那么并發的B或者其它事務可以改寫A事務讀取的數據,那么并發的C事務讀取到的數據的狀態和A的或者B的數據都可能不一致,那么。臟讀、不可重復讀、幻象數據都可能存在。

RepeatableRead:(注意MSDN原文中的第一句話:在查詢中使用的所有數據上放置鎖,所以不存在臟讀的情況)。假設A事務對讀取的所有數據Data放置了鎖,以阻止其它事務對Data的更改,在A沒有提交之前,新的并發事務讀取到的數據如果存在于Data中,那么該數據的狀態和A事務中的數據是一致的,從而避免了不可重復的讀取。但在A事務沒有結束之前,B事務可以插入新記錄到Data所在的表中,那么其它事務再次用相同的where字句查詢時,得到的結果數可能上一次的不一致,也就是幻像數據。Serializable:在數據表上放置了排他鎖,以防止在事務完成之前由其他用戶更新行或向數據集中插入行,這是最嚴格的鎖。它防止了臟讀、不可重復讀取和幻象數據。

它的對應表如下:

隔離級別

臟讀(Dirty Read

不可重復讀(NonRepeatable Read

幻讀(Phantom Read

讀未提交(Read uncommitted)

可能

可能

可能

讀已提交(Read committed)

不可能

可能

可能

可重復讀(Repeatable read)

不可能

不可能

可能

可串行化(Serializable )

不可能

不可能

不可能

回到目錄


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
丝袜美腿亚洲一区二区| 日韩中文av在线| 一区二区三区国产视频| 国产成人精品在线| 国产成人精品a视频一区www| 国产欧美欧洲在线观看| 欧美成人精品三级在线观看| 992tv成人免费视频| 亚洲美女性生活视频| 91av福利视频| 国产精品亚洲第一区| 欧美丝袜美女中出在线| 国产欧美亚洲精品| 国产精品三级网站| 97久久精品视频| 国产精品69久久久久| 欧美www视频在线观看| 日韩av手机在线观看| 精品国产91久久久| 久久综合五月天| 国产精品入口免费视| 日韩中文字幕精品视频| 成人黄色在线观看| 国产欧美日韩免费| 国产精品麻豆va在线播放| 国产欧美一区二区三区四区| 亚洲深夜福利视频| 欧美国产日韩二区| 亚洲国产精品推荐| 91精品国产高清久久久久久| 精品色蜜蜜精品视频在线观看| www.xxxx精品| 一本大道香蕉久在线播放29| 91av在线影院| 欧美三级免费观看| 中文字幕免费精品一区| 国产成人亚洲综合91| 日韩精品中文字幕视频在线| 成人黄色网免费| 久久精品夜夜夜夜夜久久| 欧美在线观看网址综合| 成人黄色av网站| 日韩av在线影院| 91九色精品视频| 国产精品jizz在线观看麻豆| 亚洲石原莉奈一区二区在线观看| 成人久久一区二区| 琪琪亚洲精品午夜在线| 2020欧美日韩在线视频| 国内自拍欧美激情| 91麻豆桃色免费看| 欧美日韩国产中字| 成人免费观看a| 国产精品一二三视频| 国产精品吊钟奶在线| 国产午夜精品理论片a级探花| 欧美性生交xxxxxdddd| 美女黄色丝袜一区| 欧美xxxx做受欧美| 久久久久久久久久久免费| 国产精品综合不卡av| 91精品视频在线播放| 久久久中文字幕| 欧美激情性做爰免费视频| 欧美中文字幕在线播放| 成人一区二区电影| 欧美激情精品久久久久久大尺度| 成人欧美一区二区三区黑人| 久久久久免费精品国产| 国产免费一区二区三区在线能观看| 91精品视频在线免费观看| 国产精品视频99| 亚洲国产精品va在线看黑人动漫| 欧美成人在线免费视频| 情事1991在线| 精品国产1区2区| 激情久久av一区av二区av三区| 亚洲在线www| 国产精品久久久久久久久借妻| 国内精品久久久| 久久国产精品网站| 欧美激情网站在线观看| 7m第一福利500精品视频| 91久久久久久久一区二区| 在线视频日本亚洲性| 奇米一区二区三区四区久久| 日韩电影大全免费观看2023年上| 国产日韩欧美自拍| 亚洲第一视频在线观看| 久久精品免费电影| 日韩在线中文字| 蜜臀久久99精品久久久久久宅男| 91精品久久久久久久久久久久久| 欧美成年人网站| 中文字幕亚洲精品| 亚洲国产精品va在线| 777777777亚洲妇女| 精品丝袜一区二区三区| 精品成人在线视频| 日韩精品一二三四区| 亚洲国产日韩欧美在线图片| 欧美高清一级大片| 亚洲xxxxx| 欧美日韩电影在线观看| 福利视频导航一区| 国产精品大陆在线观看| 97在线观看免费高清| 国产精品久久久久久久久久久久久久| 国产69精品久久久久99| 亚洲国产成人精品久久久国产成人一区| 日韩电影免费在线观看中文字幕| 日韩在线高清视频| 国产在线视频2019最新视频| 欧美中文字幕在线观看| 国产日韩av在线| 日产日韩在线亚洲欧美| 久99九色视频在线观看| 国产精品h片在线播放| 超碰91人人草人人干| 欧美性猛交xxxx黑人猛交| 亚洲精品视频播放| 91亚洲va在线va天堂va国| 久久在精品线影院精品国产| 欧美壮男野外gaytube| 久久久久久亚洲精品中文字幕| 亚洲精品免费一区二区三区| 欧美日韩激情美女| 亚洲欧美制服另类日韩| 欧美日韩中文字幕日韩欧美| 欧美在线视频在线播放完整版免费观看| 亚洲欧美成人一区二区在线电影| 欧美日韩国产丝袜美女| 中文字幕亚洲专区| 亚洲三级免费看| 亚洲免费一在线| 亚洲精品网址在线观看| www国产精品com| 国产精品久久不能| 亚洲女性裸体视频| 日韩高清电影免费观看完整版| 日韩小视频在线| 91在线看www| 欧美国产日本在线| 亚洲性线免费观看视频成熟| 日韩中文字幕在线| 九九热最新视频//这里只有精品| 日韩美女在线观看一区| 欧美日韩国产精品专区| 97精品国产97久久久久久| 欧美性视频网站| 亚洲欧美日韩综合| 国产精品久久久久久搜索| 国产精品欧美日韩久久| 国产91精品青草社区| 在线视频免费一区二区| 日本精品va在线观看| 国产精品1区2区在线观看| 国产精品久久9| 国产免费久久av| 一区二区三区久久精品| 国产精品色悠悠| 最新国产精品亚洲| 国产成人高潮免费观看精品| 国产视频精品久久久|