Shaul Behr Asked: 2017-01-26 03:15:22 +0800 CST2017-01-26 03:15:22 +0800 CST 2017-01-26 03:15:22 +0800 CST 如何判断当前是否有任何长时间运行的查询正在执行? 772 (与这个问题有关) 如果我想查看当前是否在我的数据库上执行任何长时间运行的查询,最简单的检查方法是什么?(我希望答案会是一些关于master..sysprocesses?) sql-server sql-server-2014 2 个回答 Voted Best Answer Darren 2017-01-26T03:48:05+08:002017-01-26T03:48:05+08:00 Adam Machanic 的WhoIsActive是一款出色的工具/sp,可以查看服务器上当前发生的情况。 下面来自 Brent Ozar 的教程展示了如何定期将 sp_whoisactive 记录到表中以供以后分析。 https://www.brentozar.com/responder/log-sp_whoisactive-to-a-table/ Andrew Hangsleben 2017-01-26T08:42:45+08:002017-01-26T08:42:45+08:00 我使用以下查询来获取有关当前正在运行的查询的信息。它的优点是不需要任何额外的包或插件: SELECT * FROM sys.dm_exec_requests CROSS APPLY sys.dm_exec_sql_text(sql_handle) 您可能对 [start_time]、[total_elapsed_time] 和 [text] 字段最感兴趣。
Adam Machanic 的WhoIsActive是一款出色的工具/sp,可以查看服务器上当前发生的情况。
下面来自 Brent Ozar 的教程展示了如何定期将 sp_whoisactive 记录到表中以供以后分析。
https://www.brentozar.com/responder/log-sp_whoisactive-to-a-table/
我使用以下查询来获取有关当前正在运行的查询的信息。它的优点是不需要任何额外的包或插件:
您可能对 [start_time]、[total_elapsed_time] 和 [text] 字段最感兴趣。