Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Применимо к:SQL Server
База данных SQL Azure
Управляемый экземпляр SQL Azure
Azure Synapse Analytics
Analytics Platform System (PDW)
База данных SQL в Microsoft Fabric
Возвращает список всех потоков операционной системы SQL Server, выполняемых в процессе SQL Server.
Note
Чтобы вызвать это из Azure Synapse Analytics или Analytics Platform System (PDW), используйте имя sys.dm_pdw_nodes_os_threads. Этот синтаксис не поддерживается бессерверным пулом SQL в Azure Synapse Analytics.
| Название столбца | Тип данных | Description |
|---|---|---|
| thread_address | varbinary(8) | Адрес потока в памяти (первичный ключ). |
| started_by_sqlservr | bit | Указывает, кто создал поток: 1 = SQL Server запустил поток. 0 = другой компонент запустил поток, например расширенную хранимую процедуру из SQL Server. |
| os_thread_id | int | Идентификатор потока, назначенный операционной системой. |
| статус | 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 CONFIGURATIONSET в операторе PROCESS AFFINITY . Может отличаться от планировщика в случае мягкой привязки. |
| Priority | int | Приоритет данного потока. |
| Locale | int | Кэшированное значение идентификатора локали (LCID) для данного потока. |
| Токен | 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). |
| адрес_работника | varbinary(8) | Адрес в памяти связанного с данным потоком исполнителя. Дополнительные сведения см. в разделе sys.dm_os_workers (Transact-SQL). |
| fiber_context_address | varbinary(8) | Адрес контекста внутреннего волокна. Это применимо только при настройке SQL Server для упрощенного пула. |
| self_address | varbinary(8) | Указатель для обеспечения внутренней согласованности. |
| processor_group | smallint |
Область применения: SQL Server 2008 R2 (10.50.x) и более поздних версий. Идентификатор Processor_group. |
| pdw_node_id | int |
применимо к: Azure Synapse Analytics, система платформы аналитики (PDW) Идентификатор узла, на который находится это распределение. |
Permissions
Для SQL Server и Управляемого экземпляра SQL требуется разрешение VIEW SERVER STATE.
В базе данных SQL базовые, S0и S1 целей службы, а также для баз данных в эластичных пулах, требуется учетная запись администратора сервера сервера, учетная запись администратора Microsoft Entra или членство в роли сервера ##MS_ServerStateReader##. Для всех остальных целей службы базы данных SQL требуется разрешение VIEW DATABASE STATE на базу данных или членство в роли сервера ##MS_ServerStateReader##.
Разрешения для SQL Server 2022 и более поздних версий
Требуется VIEW разрешение на состояние производительности сервера на сервере.
Заметки о версии Linux
Из-за работы обработчика SQL в Linux некоторые из этих сведений не соответствуют данным диагностика Linux. Например, не соответствует результату таких инструментов, os_thread_id как pstop , или procfs (/proc/pid). Это связано с уровнем абстракции платформы (SQLPAL), уровнем между компонентами SQL Server и операционной системой.
Examples
После запуска SQL Server запускает потоки, а затем связывает рабочие роли с этими потоками. Однако внешние компоненты, такие как расширенная хранимая процедура, могут запускать потоки в процессе SQL Server. SQL Server не контролирует эти потоки. sys.dm_os_threads могут предоставлять сведения о потоках изгоев, которые используют ресурсы в процессе SQL Server.
Следующий запрос используется для поиска рабочих ролей, а также времени, используемого для выполнения, которые выполняются потоки, не запущенные SQL Server.
Note
Для краткости в следующем запросе в инструкции * используется звездочка (SELECT). Следует избегать использования звездочки (*) при выполнении запросов к представлениям каталога, динамическим административным представлениям и системным функциям с табличным значением. Будущие обновления и выпуски Microsoft SQL Server могут добавлять столбцы и изменять порядок столбцов в эти представления и функции. Эти изменения могут повредить приложения, которые запрограммированы на определенный порядок и число столбцов.
SELECT *
FROM sys.dm_os_threads
WHERE started_by_sqlservr = 0;