sys.dm_os_threads (Transact-SQL)
Возвращает список всех потоков SQL Server в операционной системе, запущенных процессом SQL Server.
Применимо для следующих объектов: SQL Server (начиная с SQL Server 2008 до текущей версии). |
Имя столбца |
Тип данных |
Описание |
|
---|---|---|---|
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 |
Идентификатор Processor_group.
|
Разрешения
Необходимо разрешение 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)