Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Применимо к: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_tasks. Этот синтаксис не поддерживается бессерверным пулом SQL в Azure Synapse Analytics.
| Название столбца | Тип данных | Description |
|---|---|---|
| task_address | varbinary(8) | Адрес объекта в памяти. |
| task_state | nvarchar(60) | Состояние задачи. Может иметь одно из следующих значений. ОЖИДАНИЕ: ожидание рабочего потока. RUNNABLE: Runnable, но ожидает получения квантового. ВЫПОЛНЕНИЕ: в настоящее время выполняется на планировщике. SUSPENDED: имеет рабочую роль, но ожидает события. ГОТОВО: Завершено. SPINLOOP: Застрял в спин-блокировке. |
| context_switches_count | int | Число переключений контекста планировщика, которые задача уже выполнила. |
| pending_io_count | int | Количество физических операций ввода-вывода, выполняемых этой задачей. |
| pending_io_byte_count | bigint | Суммарное количество байт, обработанных в операциях ввода-вывода, выполняемых этой задачей. |
| pending_io_byte_average | int | Среднее количество байт, обработанных в операциях ввода-вывода, выполняемых этой задачей. |
| scheduler_id | int | Идентификатор родительского планировщика. Это дескриптор сведений планировщика для этой задачи. Дополнительные сведения см. в разделе sys.dm_os_schedulers (Transact-SQL). |
| session_id | smallint | Идентификатор сеанса, связанного с задачей. |
| exec_context_id | int | Идентификатор контекста выполнения, связанного с задачей. |
| request_id | int | Идентификатор запроса задачи. Для получения дополнительной информации см. sys.dm_exec_requests (Transact-SQL). |
| worker_address | varbinary(8) | Адрес в памяти для исполнителя, выполняющего задачу. NULL = задача либо ожидает готовности исполнителя, либо выполнение задачи только что завершилось. Дополнительные сведения см. в разделе sys.dm_os_workers (Transact-SQL). |
| host_address | varbinary(8) | Адрес сервера в памяти. 0 = задача создавалась без помощи сервера. Помогает идентифицировать сервер, использованный для создания этой задачи. Дополнительные сведения см. в разделе sys.dm_os_hosts (Transact-SQL). |
| parent_task_address | varbinary(8) | Адрес в памяти задачи, являющейся родительской задачей объекта. |
| 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 разрешение на состояние производительности сервера на сервере.
Examples
А. Наблюдение за параллельными запросами
Для запросов, выполняемых параллельно, вы увидите несколько строк для одного сочетания (<,>< Используйте следующий запрос, чтобы найти параметр конфигурации сервера с максимальной степенью параллелизма для всех активных запросов.
Note
Request_id уникальна в сеансе.
SELECT
task_address,
task_state,
context_switches_count,
pending_io_count,
pending_io_byte_count,
pending_io_byte_average,
scheduler_id,
session_id,
exec_context_id,
request_id,
worker_address,
host_address
FROM sys.dm_os_tasks
ORDER BY session_id, request_id;
B. Сопоставление идентификатора сеанса с потоками Windows
Можно использовать следующий запрос для сопоставления значения идентификатора сеанса со значением идентификатора потока Windows. Затем можно наблюдать за производительностью потока в системном мониторе Windows. Следующий запрос не возвращает сведений для сеансов, находящихся в ждущем режиме.
SELECT STasks.session_id, SThreads.os_thread_id
FROM sys.dm_os_tasks AS STasks
INNER JOIN sys.dm_os_threads AS SThreads
ON STasks.worker_address = SThreads.worker_address
WHERE STasks.session_id IS NOT NULL
ORDER BY STasks.session_id;
GO