sys.dm_exec_requests 中的 request_id 是什么以及它如何变化?

Mar*_*ark 3 sql-server t-sql dmv

根据MSDN,request_idsys.dm_exec_requests

“请求的 ID。在会话上下文中是唯一的。不可为空。”

从随意观察来看,它总是显示为 0。

有人能告诉我,对于给定的会话,这个 id 怎样才能大于 0?是否可以用一些sql来重现这个?

谢谢!

Dan*_*man 5

有人能告诉我,对于给定的会话,这个 id 怎样才能大于 0?是否可以用一些sql来重现这个?

request_id 非零表示启用了多个活动结果集 (MARS)的连接。使用 MARS,单个连接可能有多个活动语句,并且语句执行交错。

从 SSMS 中,打开一个新的查询窗口连接,并MultipleActiveResultSets=True在“选项-->其他连接参数”下指定。然后在窗口中运行下面的查询。您应该看到一个非零的 request_id 值。

SELECT * 
FROM sys.dm_exec_requests
WHERE session_id = @@SPID;
Run Code Online (Sandbox Code Playgroud)