sql server 鎖

來源:互聯網
上載者:User

標籤:

 鎖模式

鎖模式

說明

共用 (S)

用於不更改或不更新資料的讀取操作,如 SELECT 語句。

更新 (U)

用於可更新的資源中。 防止當多個會話在讀取、鎖定以及隨後可能進行的資源更新時發生常見形式的死結。

排他 (X)

用於資料修改操作,例如 INSERT、UPDATE 或 DELETE。 確保不會同時對同一資源進行多重更新。

意向

用於建立鎖的階層。 意圖鎖定包含三種類型:意圖共用 (IS)、意向排他 (IX) 和意向排他共用 (SIX)。

架構

在執行依賴於表架構的操作時使用。 架構鎖包含兩種類型:架構修改 (Sch-M) 和架構穩定性 (Sch-S)。

大容量更新 (BU)

在向表進行大容量資料複製且指定了 TABLOCK 提示時使用。

鍵範圍

當使用可序列化交易隔離等級時保護查詢讀取的行的範圍。 確保再次執行查詢時其他事務無法插入符合可序列化事務的查詢的行。

 

鎖的粒度

資源

說明

RID

用於鎖定堆中的單個行的行標識符。

KEY

索引中用於保護可序列化事務中的鍵範圍的行鎖。

PAGE

資料庫中的 8 KB 頁,例如資料頁或索引頁。

EXTENT

一組連續的八頁,例如資料頁或索引頁。

HoBT

堆或 B 樹。 用於保護沒有叢集索引的表中的 B 樹(索引)或堆資料頁的鎖。

TABLE

包括所有資料和索引的整個表。

FILE

資料庫檔案。

APPLICATION

應用程式專用的資源。

METADATA

中繼資料鎖。

ALLOCATION_UNIT

配置單位。

DATABASE

整個資料庫。

用rowlock實現行鎖

--串連一begin transelect * from B with(rowlock,holdlock)--加上行鎖where id=1waitfor delay ‘00:01:00‘--等待60秒提交事務commit tran
--串連二update B set name=‘a1‘where id=1--會堵塞update B set name=‘a1‘where id=2--不會堵塞

要實現表的行鎖,必須要有主鍵,因為行鎖只能運用於主鍵,沒有主鍵的話只能是表鎖。

 

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.