SQL Server中的鎖可以分為如下幾類

來源:互聯網
上載者:User

標籤:

從大類來看,SQL Server中的鎖可以分為如下幾類:

     共用鎖定(S鎖):用於讀取資源所加的鎖。擁有共用鎖定的資源不能被修改。共用鎖定預設情況下是讀取了資源馬上被釋放。比如我讀100條資料,可以想像成讀完了第一條,馬上釋放第一條,然後再給第二條資料上鎖,再釋放第二條,再給第三條上鎖。以此類推直到第100條。這也是為什麼我在圖9和圖10中的查詢需要將隔離等級設定為可重複讀,只有設定了可重複讀以上層級的隔離等級或是使用提示時,S鎖才能持續到事務結束。實際上,在同一個資源上可以加無數把S鎖

    獨佔鎖定(X鎖): 和其它任何鎖都不相容,包括其它獨佔鎖定。排它鎖用於資料修改,當資源上加了獨佔鎖定時,其他請求讀取或修改這個資源的事務都會被阻塞,知道獨佔鎖定被釋放為止。

    更新鎖定(U鎖) :U鎖可以看作是S鎖和X鎖的結合,用於更新資料,更新資料時首先需要找到被更新的資料,此時可以理解為被尋找的資料上了S鎖。當找到需要修改的資料時,需要對被修改的資源上X鎖。SQL Server通過U鎖來避免死結問題。因為S鎖和S鎖是相容的,通過U鎖和S鎖相容,來使得更新尋找時並不影響資料尋找,而U鎖和U鎖之間並不相容,從而減少了死結可能性。


來源: <http://www.cnblogs.com/CareySon/archive/2012/03/22/2411292.html>  

SQL Server中的鎖可以分為如下幾類

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.