April 2008

You are currently browsing the monthly archive for April 2008.

Часто, на многопроцессорных серверах, нужно определить, какой сеанс и какой код грузит конкретный процессор. Например, вы можете заметить, что один из процессоров длительное время чрезмерно утилизируется. Сделать это можно исполнив следующий сценарий:

     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

Информацию о столбцах используемых в сценарии системных псевдо-таблиц и динамических административных представлений и функций можно получить по следующим ссылкам: