我正在使用下面的查询(dmv' s)捕获我的sql server 2008r2实例上的Activity信息。
select
der.session_id,
der.blocking_session_id as isbeingblockedby,
der.start_time,
datediff(MINUTE, der.start_time,getdate()) as RunningForMinutes,
datediff(SECOND, der.start_time,getdate() ) as RunningForSeconds,
st.text as query text,
from sysprocesses sp
full join sys.dm_exec_requests der
on sp.spid = der.session_id
full OUTER JOIN sys.dm_exec_sessions des
on der.session_id = des.session_id
CROSS APPLY sys.dm_exec_sql_text(der.sql_handle) st
--CROSS APPLY sydes.dm_exec_query_plan(deder.plan_handle) qp
基本上它显示了阻塞或锁定信息以及session_id在特定时间运行的内容(我每隔10秒运行一次)。我最近被要求获得存储过程的持续时间。我想知道是否有人曾经使用DMV来捕捉这个。我知道我可以使用SQL服务器分析器,但业务甚至我自己都担心运行它会降低性能。我已经在每500毫秒运行一次的连续循环中执行了我的查询,这有点帮助。但是我想在这个
上得到并分享其他人的想法WHILE 1=1
BEGIN
EXEC CaptureCurrentActvity;
WAITFOR DELAY '00:00:00.500';
END