在多 " /> 最近新中文字幕大全高清,国产成人h福利小视频在线观看,放荡的美妇一区二区三区

一区二区久久-一区二区三区www-一区二区三区久久-一区二区三区久久精品-麻豆国产一区二区在线观看-麻豆国产视频

技術詳解:三招優化.NET中的鎖(組團)

  在這篇文章中,我將使用三個方法處理樂觀鎖,包括ADO.NET數據集、SQL Server時間戳數據類型和新舊值檢查,首先我們從并發談起,探討5個并發問題,然后從實際出發,利用這三種方法實現樂觀鎖。

  為什么需要鎖?
  在多用戶環境中,大家同時更新相同的記錄可能會引發沖突,這個問題用專業的術語描述就叫做并發性。并發會造成什么樣的沖突?并發主要會導致四種常見的問題,詳細情況請看下表。

  如何解決上述沖突?
  答案是使用樂觀鎖或悲觀鎖,下面將進一步進行闡述。什么是樂觀鎖?顧名思義,樂觀鎖假設多個事務相互不會影響對方,換句話說就是,在樂觀鎖模式下,沒有鎖操作會得到執行,事務只是驗證是否有其它事務修改數據,如果有則進行事務回滾,否則就提交。

  樂觀鎖是如何工作的?
1、實現樂觀鎖的方法有多種,但基本原則都一樣,總是少不了下面五個步驟:
2、記錄當前的時間戳
3、開始修改值
4、在更新前,檢查是否有其他人更新了值(通過檢查新舊時間戳實現)
5、如果不相等就回滾,否則就提交

圖 1 樂觀鎖的工作原理

  實現樂觀鎖的解決方案

  在.NET中,實現樂觀鎖的方法主要有三種:
1、數據集(Dataset):數據集是實現樂觀鎖的默認方法,在更新前它會檢查新舊值。
2、時間戳數據類型(timestamp):在你的表中創建一個timestamp數據類型,在更新時,檢查舊時間戳是否等于新時間戳。
3、直接檢查新舊值:在更新時檢查舊值和新值是否相等,如果不相等就回滾,否則就提交。

  解決方案1:數據集
  正如前面所說的,數據集是處理樂觀鎖的默認方法,下面是一個簡單的快照,在Adapter的update函數上有一個調試點,當我移除斷點運行update函數時,它拋出如下圖所示的并行異常錯誤。

圖 2 Update函數執行時拋出的異常錯誤

  如果你運行后端分析器,你將會看到更新語句檢查當前值和舊值是否相等:

  在這種情況下,我嘗試將“AuthorName”字段值修改為“This isnew”,但更新時會檢查舊值“This is old author”,下面是比較舊值的精簡代碼段:

  解決方案2:使用timestamp數據類型

  SQL Server有一個數據類型是timestamp,它是實現樂觀鎖的另一種途徑,每次更新SQL Server數據時,時間戳會自動產生一個唯一的二進制數值,時間戳數據類型可用來版本化你的記錄更新。

圖 3 timestamp數據類型

  為了實現樂觀鎖,首先需要取得舊的時間戳值,在更新時檢查舊的時間戳值是否等于當前時間戳,如:

  然后檢查是否發生了更新操作,如果沒有發生更新,則使用SQL Server的raiserror產生一系列錯誤消息。

  如果發生了并發沖突,當你如下圖所示這樣調用ExecuteNonQuery時,你應該會看到錯誤傳播。

圖 4 時間戳發生變化,存儲過程產生了錯誤

  解決方案3:檢查舊值和新值
  許多時候,我們只需要檢查相關字段值的一致性,其它字段則可以忽略,在update語句中,我們可以直接做這種比較。

NET技術技術詳解:三招優化.NET中的鎖(組團),轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 国产精品免费_区二区三区观看 | 国产日韩中文字幕 | 91在线视频导航 | 色爱区综合激月婷婷激情五月 | 在线免费午夜视频 | 九九综合九九综合 | 噜噜噜 综合 亚洲 | 一级做a爰毛片 | 最色影院 | 中文字幕天天躁日日躁狠狠躁97 | 精品日本一区二区三区在线观看 | 国产成人精品午夜二三区 | 国产女女视屏免费 | 欧美色tv | 四虎影视久久久免费 | 丁香婷婷开心激情深爱五月 | 久久精品乱子伦观看 | 亚洲欧美另类国产综合 | 国产精品国产三级国快看 | 国产午夜视频在线 | h网站国产| 日日碰碰视频播放 | 国产精品一区二区三区高清在线 | 色婷亚洲| 国产精品激情综合久久 | 国语自产免费精品视频一区二区 | 加勒比啪啪 | 五月天开心激情 | 久久成 | 51短视频版在线观看www免费 | 欧美成人全部免费观看1314色 | 激情四月婷婷 | 国产精品一区二区三区四区 | 国产精品国产三级国快看 | 国产乱理| 亚洲狠狠狠一区二区三区 | 美女黄板视频 | 91福利在线免费观看 | 大香网伊人久久综合网2020 | 91免费永久在线地址 | 99热国产精品 |