MAXDOP 8で並列実行されるクエリがあります。sp_who2
同じセッションIDが異なる接続IDで数回(> 8)繰り返されているのがわかります。
以下のクエリを使用したところ、待機タイプがまだCXCONSUMER待機タイプであることがわかりました。しかし、130の異なるexec_context IDが表示されます。
SELECT
dot.session_id,
dot.exec_context_id,
dot.task_state,
dowt.wait_type,
dowt.wait_duration_ms,
dowt.blocking_session_id,
dowt.resource_description
FROM sys.dm_os_tasks dot
LEFT JOIN sys.dm_os_waiting_tasks dowt
ON dowt.exec_context_id = dot.exec_context_id
AND dowt.session_id = dot.session_id
WHERE dot.session_id = 96
ORDER BY exec_context_id;
クエリが並列で実行されている場合、負荷が別のワーカースレッドに分散されるときに別のspidがありますか?
ケンドラ・リトルの記事を見てみました。とても役に立ちました。
クエリを使用して、並列処理クエリで使用されているさまざまなスケジューラを確認しました。
同じshcheduler_id/workerアドレスが複数回使用されているのがわかりますか?
また、私のMAXDOPは4ですが、奇妙な5つの異なるscheduler_idが表示されます。