我有一个应用程序可以让用户一次搜索数百万条记录。当搜索没有及时返回时,用户退出应用程序,重新登录,然后重新提交搜索。
SQL 服务器不知道用户已注销并且它不应该仍在运行搜索,所以我最终会同时执行许多相同的查询。现在我只运行一个脚本,显示运行了 5 分钟或更长时间的内容(请注意,这些搜索很激烈,可以运行几个小时),我如何检测重复查询何时运行?
谢谢,
菲利普
我有一个应用程序可以让用户一次搜索数百万条记录。当搜索没有及时返回时,用户退出应用程序,重新登录,然后重新提交搜索。
SQL 服务器不知道用户已注销并且它不应该仍在运行搜索,所以我最终会同时执行许多相同的查询。现在我只运行一个脚本,显示运行了 5 分钟或更长时间的内容(请注意,这些搜索很激烈,可以运行几个小时),我如何检测重复查询何时运行?
谢谢,
菲利普
您可以运行这段 SQL 并检查文本值:
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
归功于Sql 授权