sp_lock :報告有關鎖的資訊。
在此儲存過程之中,很清楚的說明了鎖的型別和幾種模式:
type
nchar(4)
鎖的型別:
rid = 表中單個行的鎖,由行識別符號 (rid) 標識。
key = 索引內保護可序列事務中一系列鍵的鎖。
pag = 資料頁或索引頁的鎖。
ext = 對某區的鎖。
tab = 整個表(包括所有資料和索引)的鎖。
db = 資料庫的鎖。
fil = 資料庫檔案的鎖。
md = 元資料或目錄資訊的鎖。
hbt = 堆或 b 樹索引的鎖。在 sql server 中此資訊不完整。
au = 分配單元的鎖。在 sql server 中此資訊不完整。
模式
nvarchar(8)
所請求的鎖模式。可以是:
null = 不授予對資源的訪問許可權。用作佔位符。
sch-s = 架構穩定性。確保在任何會話持有對架構元素(例如表或索引)的架構穩定性鎖時,不刪除該架構元素。
sch-m = 架構修改。必須由要更改指定資源架構的任何會話持有。確保沒有其他會話正在引用所指示的物件。
s = 共享。授予持有鎖的會話對資源的共享訪問許可權。
u = 更新。指示對最終可能更新的資源獲取的更新鎖。用於防止一種常見的死鎖,這種死鎖在多個會話鎖定資源以便稍後對資源進行更新時發生。
x = 排他。授予持有鎖的會話對資源的獨佔訪問許可權。
is = 意向共享。指示有意將 s 鎖放置在鎖層次結構中的某個從屬資源上。
iu = 意向更新。指示有意將 u 鎖放置在鎖層次結構中的某個從屬資源上。
ix = 意向排他。指示有意將 x 鎖放置在鎖層次結構中的某個從屬資源上。
siu = 共享意向更新。指示對有意在鎖層次結構中的從屬資源上獲取更新鎖的資源進行共享訪問。
six = 共享意向排他。指示對有意在鎖層次結構中的從屬資源上獲取排他鎖的資源進行共享訪問。
uix = 更新意向排他。指示對有意在鎖層次結構中的從屬資源上獲取排他鎖的資源持有的更新鎖。
bu = 大容量更新。用於大容量操作。
ranges_s = 共享鍵範圍和共享資源鎖。指示可序列範圍掃瞄。
ranges_u = 共享鍵範圍和更新資源鎖。指示可序列更新掃瞄。
rangei_n = 插入鍵範圍和 null 資源鎖。用於在將新鍵插入索引前測試範圍。
rangei_s = 鍵範圍轉換鎖。由 rangei_n 和 s 鎖的重疊建立。
rangei_u = 由 rangei_n 和 u 鎖的重疊建立的鍵範圍轉換鎖。
rangei_x = 由 rangei_n 和 x 鎖的重疊建立的鍵範圍轉換鎖。
rangex_s = 由 rangei_n 和 ranges_s 鎖的重疊建立的鍵範圍轉換鎖。
rangex_u = 由 rangei_n 和 ranges_u 鎖的重疊建立的鍵範圍轉換鎖。
rangex_x = 排他鍵範圍和排他資源鎖。這是在更新範圍中的鍵時使用的轉換鎖。
另外:-- 利用: exec sp_helptext 'name' 可以檢視函式、儲存過程、檢視的原始碼
--eg: exec sp_helptext sp_who2
SQL Server資料庫鎖機制及型別
microsoft sql server 以下簡稱sql server 作為一種中小型資料庫管理系統,已經得到了廣泛的應用,該系統更強調由系統來管理鎖。在使用者有sql請求時,系統分析請求,自動在滿足鎖定 條件和系統效能之間為資料庫加上適當的鎖,同時系統在執行期間常常自動進行優化處理,實行動態加鎖。...
redis事務及鎖應用 發布訂閱模式
mysql和ridis事務對比 redis事務時執行命令放到了佇列裡。注 rollback與discard的區別 如果已經成功執行了2條語句,第三條語句出錯 rollback後前2條語句影響消失。discard只是結束本次事務,前2句造成的影響還在。注 在multi後面的語句中,語句出錯可能有2中情...
InnoDB 的行鎖模式及加鎖方法
innodb 實現了以下兩種型別的行鎖。共享鎖 s 允許乙個事務去讀一行,阻止其他事務獲得相同資料集的排他鎖。排他鎖 x 允許獲得排他鎖的事務更新資料,阻止其他事務取得相同資料集的共享 讀鎖和排他寫鎖。另外,為了允許行鎖和表鎖共存,實現多粒度鎖機制,innodb 還有兩種內部使用的意 向鎖 inte...