Определения полей 'cmd' sysprocesss MS SQL Server
-
29-09-2020 - |
Вопрос
Я собираюсь провести профилирование типов и объемов соединений в течение дня.
я использую sys.sysprocesses
собрать необходимую мне информацию, обращая особое внимание на 'cmd'
поле для классификации соединений.Есть ли у кого-нибудь хороший полный список определений значений в этом поле?Я могу понять, что представляют собой многие из них, но не могу найти в Интернете определения некоторых из них, например 'XE TIMER'
Большое спасибо,
Решение
Как предложено в комментарии sys.sysprocesses устарел, и Microsoft не рекомендует его использовать в дальнейшем.Это просто для обратной совместимости
Представленное выше представление было заменено на sys.dm_exec_requests.Вы бы увидели cmd
столбец из sys.sysprocesses теперь command
столбец в sys.dm_exec_requests, и этот столбец сообщает вам
Определяет текущий тип обрабатываемой команды.Общие типы команд включают следующее:
• ВЫБИРАТЬ
• ВСТАВЛЯТЬ
• ОБНОВЛЯТЬ
• УДАЛИТЬ
• ЖУРНАЛ РЕЗЕРВНОГО КОПИРОВАНИЯ
• РЕЗЕРВНОЕ КОПИРОВАНИЕ БАЗЫ ДАННЫХ
• ДБКК
• ДЛЯ
Текст запроса может быть извлечен с помощью sys.dm_exec_sql_text с соответствующим SQL_Handle для запроса.Внутренние системные процессы устанавливают команду на основе типа задачи, которую они выполняют.Задачи могут включать в себя следующее:• БЛОКИРОВКА МОНИТОРА
• ЧЕКПОИНТЛАЗЫ
• ПИСАТЕЛЬ
Не имеет значения NULL.
Вместо этого я предлагаю вам сосредоточиться на столбце sql_handle
который присутствует в sys.dm_exec_requests
.Ниже код даст вам запрос к sql_handle
select er.session_id,
er.command,
t.text --gives query behind sql_handle
from sys.dm_exec_requests er
cross apply sys.dm_exec_sql_text(er.sql_handle) t