Часто, на многопроцессорных серверах, нужно определить, какой сеанс и какой код грузит конкретный процессор. Например, вы можете заметить, что один из процессоров длительное время чрезмерно утилизируется. Сделать это можно исполнив следующий сценарий:
SELECT DB_NAME(ISNULL(s.dbid,1)) AS [Имя базы данных]
, c.session_id AS [ID сессии]
, t.scheduler_id AS [Номер процессора]
, s.text AS [Текст SQL-запроса]
FROM sys.dm_exec_connections AS c
CROSS APPLY master.sys.dm_exec_sql_text(c.most_recent_sql_handle) AS s
JOIN sys.dm_os_tasks t
ON t.session_id = c.session_id
AND t.task_state = 'RUNNING'
AND ISNULL(s.dbid,1) > 4
ORDER BY c.session_id DESC
Автор: Александр Гладченко

