当服务器卡慢时,可通过以下代码排查sys.dm_exec_requests
、sys.sysprocesses
、sys.dm_exec_sql_text
/*
sys.dm_exec_requests 返回有关在 SQL Server 中正在执行的每个请求的信息
sys.sysprocesses 包含有关在 SQL Server 实例上运行的进程的信息。 这些进程可以是客户端进程或系统进程
sys.dm_exec_sql_text 返回由指定的 sql_handle标识的 SQL 批处理的文本
**/
select
[spid] = session_id
,ecid
,[database] = db_name(sp.dbid)
,[user] = nt_username
,[status] = er.status
,[wait] = wait_type
,[individual query] = substring(qt.text,er.statement_start_offset / 2, ( case when er.statement_end_offset = -1 then len(convert(nvarchar(max), qt.text))* 2 else er.statement_end_offset end - er.statement_start_offset ) / 2)
,[parent query] = qt.text
,program = program_name
,hostname
,nt_domain
,start_time
from sys.dm_exec_requests er
inner join sys.sysprocesses sp
on er.session_id = sp.spid
cross apply sys.dm_exec_sql_text(er.sql_handle) as qt
where er.session_id > 50
and session_id not in ( @@spid )
order by 1 ,2
本文从CSDN(点击查看原文)转载而来。不代表烟海拾贝立场,如若转载,请注明出处:https://somirror.com/5417.html