共享 (S) 用於不更改或不更新數據的讀取操作,如 SELECT 語句。

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

排他 (X) 用於數據修改操作,例如 INSERT、UPDATE 或 DELETE。 確保不會同時對同一資源進行多重更新。

意向 用於建立鎖的層次結構。 意向鎖包含三種類型:意向共享 (IS)、意向排他 (IX) ,意向排他共享 (SIX)。

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

大容量更新 (BU) 使用到表中大容量複製數據和 TABLOCK 指定提示。

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

意向共享 (IS) 保護針對層次結構中某些(而並非所有)低層資源請求或獲取的共享鎖。

意向排他 (IX) 保護針對層次結構中某些(而並非所有)低層資源請求或獲取的排他鎖。 IX 是 IS 的超集,它也保護針對低層級別資源請求的共享鎖。

意向排他共享 (SIX) 保護針對層次結構中某些(而並非所有)低層資源請求或獲取的共享鎖以及針對某些(而並非所有)低層資源請求或獲取的意向排他鎖。 頂級資源允許使用並發 IS 鎖。 例如,獲取表上的 SIX 鎖也將獲取正在修改的頁上的意向排他鎖以及修改的行上的排他鎖。 雖然每個資源在一段時間內只能有一個 SIX 鎖,以防止其他事務對資源進行更新,但是其他事務可以通過獲取表級的 IS 鎖來讀取層次結構中的低層資源。

意向更新 (IU) 保護針對層次結構中所有低層資源請求或獲取的更新鎖。 僅在頁資源上使用 IU 鎖。 如果進行了更新操作,IU 鎖將轉換為 IX 鎖。

共享意向更新 (SIU) S 鎖和 IU 鎖的組合,作為分別獲取這些鎖並且同時持有兩種鎖的結果。 例如,事務執行帶有 PAGLOCK 提示的查詢,然後執行更新操作。 帶有 PAGLOCK 提示的查詢將獲取 S 鎖,更新操作將獲取 IU 鎖。

更新意向排他 (UIX) U 鎖和 IX 鎖的組合,作為分別獲取這些鎖並且同時持有兩種鎖的結果。

推薦閱讀:

相關文章