sys.dm_os_threads (Transact-SQL)
Возвращает список всех потоков SQL Server в операционной системе, запущенных процессом SQL Server.
Имя столбца |
Тип данных |
Описание |
---|---|---|
thread_address |
varbinary(8) |
Адрес потока в памяти (первичный ключ). |
started_by_sqlservr |
bit |
Указывает, кто создал поток: 1 = SQL Server запустил поток. 0 = поток создан другим компонентом, например расширенной хранимой процедурой внутри SQL Server. |
os_thread_id |
int |
Идентификатор потока, назначенный операционной системой. |
status |
int |
Флаг внутреннего состояния. |
instruction_address |
varbinary(8) |
Адрес выполняющейся в данный момент инструкции. |
creation_time |
datetime |
Время создания потока. |
kernel_time |
bigint |
Время работы потока в режиме ядра. |
usermode_time |
bigint |
Время работы потока в режиме пользователя. |
stack_base_address |
varbinary(8) |
Самый высокий адрес в стеке для данного потока. |
stack_end_address |
varbinary(8) |
Самый низкий адрес в стеке для данного потока. |
stack_bytes_committed |
int |
Число байтов, сохраненных в стеке. |
stack_bytes_used |
int |
Число байтов, используемых потоком в данный момент. |
affinity |
bigint |
Маска ЦП, на которой выполняется данный поток. Зависит от значения, установленного инструкцией ALTER SERVER CONFIGURATION SET PROCESS AFFINITY. Может отличаться от планировщика в случае мягкой привязки. |
Priority |
int |
Приоритет данного потока. |
Locale |
int |
Кэшированное значение идентификатора локали (LCID) для данного потока. |
Token |
varbinary(8) |
Кэшированный дескриптор токена олицетворения для данного потока. |
is_impersonating |
int |
Указывает, использует ли данный поток олицетворение Win32: 1 = Поток использует учетные данные для обеспечения безопасности, отличающиеся от данных для процесса по умолчанию. Это значит, что поток олицетворяет сущность, отличную от созданной процессом. |
is_waiting_on_loader_lock |
int |
Состояние операционной системы, указывающее, ожидает ли поток завершения блокировки загрузчика. |
fiber_data |
varbinary(8) |
Текущее волокно Win32, запущенное для потока. Применимо только в случае, если SQL Server настроен для использования упрощенных пулов. |
thread_handle |
varbinary(8) |
Только для внутреннего использования. |
event_handle |
varbinary(8) |
Только для внутреннего использования. |
scheduler_address |
varbinary(8) |
Адрес в памяти связанного с данным потоком планировщика. Дополнительные сведения см. в разделе sys.dm_os_schedulers (Transact-SQL). |
worker_address |
varbinary(8) |
Адрес в памяти связанного с данным потоком исполнителя. Дополнительные сведения см. в разделе sys.dm_os_workers (Transact-SQL). |
fiber_context_address |
varbinary(8) |
Адрес контекста внутреннего волокна. Применимо только в случае, если SQL Server настроен для использования упрощенных пулов. |
self_address |
varbinary(8) |
Указатель для обеспечения внутренней согласованности. |
processor_group |
smallint |
Сохраняет идентификатор группы процессоров. |
Разрешения
Необходимо разрешение VIEW SERVER STATE на сервере.
Примеры
При запуске сервера запускаются потоки SQL Server, с которыми затем связываются рабочие процессы. Однако внешние компоненты, например расширенные хранимые процедуры, могут запускать потоки в процессе SQL Server. Сам SQL Server не управляет этими потоками. Сведения о неуправляемых потоках, потребляющих ресурсы процесса SQL Server, можно получить с помощью динамического административного представления sys.dm_os_threads.
Следующий запрос используется для поиска рабочих процессов, выполняющих потоки, не запущенные сервером SQL Server, и для получения сведений о времени их выполнения.
Примечание |
---|
Для краткости в следующем запросе в инструкции SELECT используется звездочка (*). Следует избегать использования звездочки (*) при выполнении запросов к представлениям каталога, динамическим административным представлениям и системным функциям с табличным значением. В будущих обновлениях и версиях Microsoft SQL Server могут быть добавлены столбцы или может быть изменен их порядок в этих представлениях и функциях. Эти изменения могут повредить приложения, которые запрограммированы на определенный порядок и число столбцов. |
SELECT *
FROM sys.dm_os_threads
WHERE started_by_sqlservr = 0;
См. также
Справочник
Динамические административные представления и функции (Transact-SQL)