1.首先我們需要判斷是哪個使用者鎖住了哪張表.12
3–查詢被鎖表
select request_session_id spid,object_name(resource_associated_entity_id) tablename
from sys.dm_tran_locks where resource_type=『object』
查詢後會返回乙個包含spid和tablename列的表.
其中spid是程序名,tablename是表名.
2.了解到了究竟是哪個程序鎖了哪張表後,需要通過程序找到鎖表的主機.12
3–查詢主機名
exec sp_who2 『***』
***就是spid列的程序,檢索後會列出很多資訊,其中就包含主機名.
3.通過spid列的值進行關閉程序.12
3456
–關閉程序
declare @spid int
set @spid = *** --鎖表程序
declare @sql varchar(1000)
set @sql='kill '+cast(@spid as varchar)
exec(@sql)
–關閉程序
declare @spid int
set @spid = *** --鎖表程序
declare @sql varchar(1000)
set @sql='kill '+cast(@spid as varchar)
exec(@sql)
ps:有些時候強行殺掉程序是比較危險的,所以最好可以找到執行程序的主機,在該機器上關閉程序.
關閉Oracle死鎖程序
關閉oracle死鎖程序的具體步驟 查哪個過程被鎖 查v db object cache檢視 select from v db object cache where owner 過程的所屬使用者 and clocks 0 2.查是哪乙個sid,通過sid可知道是哪個session 查v access...
SqlServer 檢視死鎖的程序
這個工具,用來檢視一些當時的執行狀態.和乾掉程序.但是這個工具只能檢視部分哪個表被鎖住了.也無法知道是哪個程序和sql導致了鎖程序.只能檢視一些其它的資訊.至於如何檢視死鎖的表,需要用到下面的sql.然後根據查出來的 程序id 去上面的工具中 檢視詳細資訊.可以檢視到引起死鎖的sql 檢視被鎖表 s...
SqlServer 檢視死鎖的程序
這個工具,用來檢視一些當時的執行狀態.和乾掉程序.但是這個工具只能檢視部分哪個表被鎖住了.也無法知道是哪個程序和sql導致了鎖程序.只能檢視一些其它的資訊.至於如何檢視死鎖的表,需要用到下面的sql.然後根據查出來的 程序id 去上面的工具中 檢視詳細資訊.可以檢視到引起死鎖的sql 檢視被鎖表 s...