web-dev-qa-db-ja.com

sys.dm_exec_requestsのrequest_idとは何ですか?どのように変更されますか?

MSDNによると、sys.dm_exec_requestsのrequest_idは

「リクエストのID。セッションのコンテキストで一意です。nullにすることはできません。」

何気ない観察から、それは常に0のように見えます。

特定のセッションで、このIDが0を超える方法を教えてください。これをいくつかのSQLで再現することは可能ですか?

ありがとう!

2
Mark

特定のセッションで、このIDが0を超える方法を教えてください。これをいくつかのSQLで再現することは可能ですか?

ゼロ以外のrequest_idは、 Multiple Active Result Sets(MARS) が有効な接続を示します。 MARSでは、1つの接続に複数のアクティブなステートメントがあり、ステートメントの実行がインターリーブされます。

SSMSから、[オプション->追加の接続パラメータ]でMultipleActiveResultSets=Trueを指定して、新しいクエリウィンドウ接続を開きます。次に、ウィンドウで以下のクエリを実行します。ゼロ以外のrequest_id値が表示されます。

SELECT * 
FROM sys.dm_exec_requests
WHERE session_id = @@SPID;
4
Dan Guzman