我正在使用这个查询来查找一些已经运行了很长时间的查询:
SELECT sqltext.TEXT,
req.session_id,
req.status,
req.command,
req.cpu_time,
req.total_elapsed_time
FROM sys.dm_exec_requests req
CROSS APPLY sys.dm_exec_sql_text(sql_handle) AS sqltext
order by req.total_elapsed_time des
目前,我们有一些似乎被卡住的 xp_cmdshell 东西(我们使用它来调用 bcp.exe 以在作业中批量导出)。但是,sys.dm_exec_sql_text() 的输出只输出“xp_cmdshell”而不是参数——我真的很想看看 xp_cmdshell 正在运行哪些命令,以便追踪问题。
有没有办法在 SQL Server 中做到这一点?
编辑:活动会话正在从存储过程调用 xp_cmdshell 。例如:
EXEC usp_xxx -> 调用 EXEC usp_yyy -> 调用 xp_cmdshell。
因此,DBCC InputBuffer 的输出是对 usp_xxx 的调用,这不是我想要的。