MSServer死循环检测

SELECT
SPID = er.session_id 
,Status = ses.status 
,[Login] = ses.login_name 
,Host = ses.host_name 
,BlkBy = er.blocking_session_id 
,DBName = DB_Name(er.database_id) 
,CommandType = er.command 
,SQLStatement = st.text 
,ObjectName = OBJECT_NAME(st.objectid) 
,ElapsedMS = er.total_elapsed_time 
,CPUTime = er.cpu_time 
,IOReads = er.logical_reads + er.reads 
,IOWrites = er.writes 
,LastWaitType = er.last_wait_type 
,StartTime = er.start_time 
,Protocol = con.net_transport 
,ConnectionWrites = con.num_writes 
,ConnectionReads = con.num_reads 
,ClientAddress = con.client_net_address 
,Authentication = con.auth_scheme 
FROM sys.dm_exec_requests er 
OUTER APPLY sys.dm_exec_sql_text(er.sql_handle) st 
LEFT JOIN sys.dm_exec_sessions ses 
ON ses.session_id = er.session_id 
LEFT JOIN sys.dm_exec_connections con 
ON con.session_id = ses.session_id 
WHERE er.session_id > 50 
ORDER BY
er.blocking_session_id DESC
,er.session_id 

kill spid

或者exec sp_who/sp_who2

或者

SELECT r.session_id, s.text AS query_text, r.status, DATEDIFF(MINUTE, r.start_time, GETDATE()) AS duration
FROM sys.dm_exec_requests r CROSS APPLY sys.dm_exec_sql_text(r.sql_handle) s
WHERE r.command IN ('SELECT') -- 根据需要修改命令类型
AND EXISTS (
    SELECT * FROM sys.dm_os_waiting_tasks wt WHERE wt.session_id = r.session_id AND wt.wait_type LIKE '%LCK%'
);

 

posted @ 2024-01-19 09:02  Shapley  阅读(4)  评论(0编辑  收藏  举报