• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      SQL SERVER并發(fā)控制中隔離級(jí)別的實(shí)現(xiàn)

      2020-04-10 06:46:55徐愛蕓
      世界家苑 2020年1期
      關(guān)鍵詞:事務(wù)

      徐愛蕓

      摘要:為了充分利用系統(tǒng)資源,發(fā)揮共享資源的特點(diǎn),數(shù)據(jù)庫(kù)系統(tǒng)允許執(zhí)行多個(gè)并發(fā)事務(wù),在任何給定的時(shí)刻有可達(dá)數(shù)百個(gè)正在執(zhí)行的卻只部分完成的事務(wù),這是由用戶來(lái)選擇一個(gè)可以保證應(yīng)用程序正確執(zhí)行并且能夠使并發(fā)度最大的隔離級(jí)別的執(zhí)行選項(xiàng)。

      關(guān)鍵詞:事務(wù);隔離級(jí)別;并發(fā)執(zhí)行;并發(fā)控制

      數(shù)據(jù)庫(kù)系統(tǒng)的最大特點(diǎn)是共享,允許多個(gè)用戶或多種應(yīng)用相互覆蓋地共享數(shù)據(jù)集合。在互聯(lián)網(wǎng)時(shí)代,成千上萬(wàn)的不同地點(diǎn)的計(jì)算機(jī)每秒執(zhí)行上百的操作,同一時(shí)間有多個(gè)操作影響同一數(shù)據(jù),即存在并發(fā)操作,如果不加以控制,可能帶來(lái)數(shù)據(jù)不一致問題:更新丟失;不可重復(fù)讀;讀臟數(shù)據(jù)。為保證并發(fā)事務(wù)執(zhí)行時(shí)數(shù)據(jù)的正確性和一致性,對(duì)并發(fā)事務(wù)要進(jìn)行控制。

      1 事務(wù)管理器

      負(fù)責(zé)事務(wù)的正確執(zhí)行是事務(wù)管理器,它接受來(lái)自應(yīng)用的命令,包括BEGIN TRANSACATION、COMMIT、ROLLBACK,而將事務(wù)操作傳給日志管理器。并發(fā)控制管理器對(duì)并發(fā)執(zhí)行的事務(wù)進(jìn)行控制,通過(guò)加鎖和封鎖協(xié)議保證并發(fā)執(zhí)行的事務(wù)保持隔離性。其流程如圖1所示。

      2 事務(wù)隔離級(jí)別

      在實(shí)際開發(fā)中,直接操作數(shù)據(jù)庫(kù)中各種鎖的幾率相對(duì)比較少,更多的是利用數(shù)據(jù)庫(kù)提供的四個(gè)隔離級(jí)別:未提交讀、已提交讀、可重復(fù)讀、可序列化,用隔離封裝鎖。隔離級(jí)別從上到下依次增加,級(jí)別越低,引起的問題也就比較多,比如臟讀、丟失更新等;隔離級(jí)別越高,需要管理更多的鎖,無(wú)法并行處理,性能方面又受損。在實(shí)際的系統(tǒng)中只需要根據(jù)業(yè)務(wù)需求選擇一種當(dāng)適合的隔離級(jí)別。一種隔離級(jí)別,就有一套利用鎖的方案,如此設(shè)計(jì)的目的就是為了平衡性能和功能。

      2.1 讀未提交(Read Uncommitted)

      “讀未提交”提供了事務(wù)之間最小限度的隔離,事務(wù)沒有獲得讀鎖也可以執(zhí)行該操作,事務(wù)可以讀取其它事務(wù)已經(jīng)在其上加過(guò)寫鎖的數(shù)據(jù),即允許臟讀。其實(shí)現(xiàn)的機(jī)制通過(guò)實(shí)驗(yàn)驗(yàn)證,過(guò)程如表1所示。

      未提交讀不允許更新丟失,如果一個(gè)事務(wù)已經(jīng)開始寫數(shù)據(jù),則另外一個(gè)數(shù)據(jù)則不允許同時(shí)進(jìn)行寫操作,該隔離級(jí)別可以通過(guò)排它鎖實(shí)現(xiàn)。

      2.2 讀已提交(Read Committed)

      “讀已提交”只能讀提交的數(shù)據(jù),不允許臟讀,但允許不可重復(fù)讀。這可以通過(guò)共享鎖和排它鎖實(shí)現(xiàn)。讀取數(shù)據(jù)的事務(wù)允許其它事務(wù)繼續(xù)訪問該行數(shù)據(jù),但是未提交的寫事務(wù)將會(huì)禁止其他事務(wù)訪問該行。其實(shí)現(xiàn)的機(jī)制通過(guò)實(shí)驗(yàn)驗(yàn)證,過(guò)程如表2所示。

      2.3 可重復(fù)讀(Repeatable Read)

      “可重復(fù)讀”通過(guò)共享鎖和排它鎖實(shí)現(xiàn),讀取數(shù)據(jù)的事務(wù)將會(huì)禁止寫事務(wù)(但允許讀事務(wù)),寫事務(wù)則禁止任何其它事務(wù),禁止不可重復(fù)讀和臟讀。其實(shí)現(xiàn)的機(jī)制通過(guò)實(shí)驗(yàn)驗(yàn)證,過(guò)程如表3所示。

      2.4 序列化(Serializable)

      “序列化”提供嚴(yán)格的事務(wù)隔離,它要求事務(wù)序列化執(zhí)行,事務(wù)只能一個(gè)接著一個(gè)地執(zhí)行,但不能并發(fā)執(zhí)行。如果僅僅通過(guò)“行級(jí)鎖”是無(wú)法實(shí)現(xiàn)事務(wù)序列化的,必須通過(guò)其他機(jī)制保證新插入的數(shù)據(jù)不會(huì)被剛執(zhí)行查詢操作的事務(wù)訪問到。

      3 結(jié)語(yǔ)

      隔離級(jí)別越高,越能保證數(shù)據(jù)的完整性和一致性,但是對(duì)并發(fā)性能的影響也越大。對(duì)于多數(shù)應(yīng)用程序,可以優(yōu)先考慮把數(shù)據(jù)庫(kù)系統(tǒng)的隔離級(jí)別設(shè)為Read Committed,它能夠避免讀臟數(shù)據(jù),而且具有較好的并發(fā)性能。盡管它會(huì)導(dǎo)致不可重復(fù)讀、虛讀這些并發(fā)問題,在可能出現(xiàn)這類問題的個(gè)別場(chǎng)合,可以由應(yīng)用程序采用悲觀鎖或樂觀鎖來(lái)控制。

      參考文獻(xiàn):

      [1] 送金玉,陳萍,陳剛.數(shù)據(jù)庫(kù)原理與應(yīng)用(第2版)[M].清華大學(xué)出版社,2011(06).

      [2] 尹為民,數(shù)據(jù)庫(kù)原理與技術(shù)(第2版)[M].科學(xué)出版社,2010(01).

      (作者單位:江漢大學(xué)數(shù)學(xué)與計(jì)算機(jī)科學(xué)學(xué)院)

      猜你喜歡
      事務(wù)
      “事物”與“事務(wù)”
      基于分布式事務(wù)的門架數(shù)據(jù)處理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
      河湖事務(wù)
      DB2事務(wù)日志行為分析及對(duì)策
      基于OCC-DA-MCP算法的Redis并發(fā)控制
      基于鍵值存儲(chǔ)的事務(wù)控制策略
      基于優(yōu)先級(jí)的多版本兩階段鎖并發(fā)控制協(xié)議
      SQLServer自治事務(wù)實(shí)現(xiàn)方案探析
      淺析Oracle事務(wù)
      移動(dòng)實(shí)時(shí)環(huán)境下的數(shù)據(jù)一致性研究
      西贡区| 荥阳市| 丘北县| 岑溪市| 诏安县| 花莲县| 犍为县| 台山市| 故城县| 百色市| 东乡县| 德清县| 商都县| 漳浦县| 高州市| 建阳市| 漾濞| 郴州市| 垣曲县| 玉林市| 福鼎市| 尼勒克县| 惠州市| 大足县| 河曲县| 紫金县| 云和县| 石棉县| 吕梁市| 张家界市| 阜康市| 晋城| 宜兰县| 德令哈市| 通化县| 武平县| 沙河市| 大宁县| 张家港市| 平度市| 芒康县|