1. 使用sp_lock進(jìn)行察看,如果 輸出信息 locktype 中包含 -blk 字符,說(shuō)明當(dāng)前表table_id的page上的鎖對(duì)其他進(jìn)程造成了阻塞
2. 通過(guò)察看master..syslocks系統(tǒng)表
例
id dbid page type spid class fid context row loid
----------- ------ ----------- ------ ------ -----
512004855 6 0 3 13 Non Cursor Lock 0 0 0 26
512004855 6 0 4 12 Non Cursor Lock 0 0 0 24
512004855 6 0 3 10 Non Cursor Lock 0 0 0 20
512004855 6 793 261 13 Non Cursor Lock 0 8 0 26 從spid可知道當(dāng)前阻塞及被阻塞的進(jìn)程,并且從type字段可以知道鎖的類(lèi)型,見(jiàn)下表:
1 0x1 排它表鎖
2 0x2 共享表鎖
3 0x3 排它意圖鎖
4 0x4 共享意圖鎖
5 0x5 排它頁(yè)鎖
6 0x6 共享頁(yè)鎖
7 0x7 更新頁(yè)鎖
8 0x8 排它行鎖
9 0x9 共享行鎖
10 0xA 更新行鎖
11 0xB 共享下一鍵鎖
256 0x100 鎖在阻塞另一個(gè)進(jìn)程
512 0x200 請(qǐng)求鎖
所以你可以通過(guò)下面的查詢(xún)獲得阻塞表信息
select b.name as dbname,a.id as table_id,page,spid from syslocks a,sysdatabases b
where b.dbid = a.dbid
and a.type & 256 = 256
你也可以寫(xiě)成一個(gè)存儲(chǔ)過(guò)程,不過(guò)一定要在master中執(zhí)行,