sys.dm_os_threads
Возвращает список всех потоков 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 |
Маска ЦП, где должен выполняться данный поток. Она зависит от значения параметра конфигурации affinity mask процедуры sp_configure. |
locale |
int |
Кэшированное значение идентификатора языкового стандарта (LCID) для данного потока. |
priority |
int |
Приоритет данного потока. |
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. |
fiber_context_address |
varbinary(8) |
Адрес контекста внутреннего волокна. Применимо только в случае, если SQL Server настроен для использования упрощенных пулов. |
self_address |
varbinary(8) |
Указатель для обеспечения внутренней согласованности. |
Разрешения
Требует разрешения VIEW SERVER STATE на сервере.
Примеры
При запуске сервера запускаются потоки SQL Server, с которыми затем связываются рабочие процессы. Однако внешние компоненты, например расширенные хранимые процедуры, могут запускать потоки в процессе SQL Server. SQL Server не управляет этими потоками. Сведения о неконтролируемых потоках, потребляющих ресурсы процесса SQL Server, можно получить с помощью процедуры sys.dm_os_threads.
Следующий запрос используется для поиска рабочих процессов, выполняющих потоки, не запущенные сервером SQL Server, и для получения сведений о времени их выполнения.
Примечание |
---|
Для краткости в следующем запросе в инструкции SELECT используется звездочка (*). Следует избегать использования звездочки (*) при выполнении запросов к представлениям каталога, динамическим административным представлениям и системным, возвращающим табличное значение функциям. В будущих обновлениях и версиях MicrosoftSQL Server могут быть добавлены столбцы или может быть изменен их порядок в этих представлениях и функциях. Эти изменения могут повредить приложения, которые запрограммированы на определенный порядок и число столбцов. |
SELECT *
FROM sys.dm_os_threads
WHERE started_by_sqlservr = 0;