Поделиться через


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)

sys.dm_os_workers (Transact-SQL)

Динамические административные представления, относящиеся к операционной системе SQL Server (Transact-SQL)