sys.dm_os_tasks (Transact-SQL)sys.dm_os_tasks (Transact-SQL)

Применимо к:Applies to: даSQL ServerSQL Server (все поддерживаемые версии) yesSQL ServerSQL Server (all supported versions) ДаБаза данных SQL AzureAzure SQL DatabaseYesБаза данных SQL AzureAzure SQL Database ДаУправляемый экземпляр SQL AzureAzure SQL Managed InstanceYesУправляемый экземпляр SQL AzureAzure SQL Managed Instance даAzure Synapse AnalyticsAzure Synapse AnalyticsyesAzure Synapse AnalyticsAzure Synapse Analytics даПараллельное хранилище данныхParallel Data WarehouseyesПараллельное хранилище данныхParallel Data WarehouseПрименимо к:Applies to: даSQL ServerSQL Server (все поддерживаемые версии) yesSQL ServerSQL Server (all supported versions) ДаБаза данных SQL AzureAzure SQL DatabaseYesБаза данных SQL AzureAzure SQL Database ДаУправляемый экземпляр SQL AzureAzure SQL Managed InstanceYesУправляемый экземпляр SQL AzureAzure SQL Managed Instance даAzure Synapse AnalyticsAzure Synapse AnalyticsyesAzure Synapse AnalyticsAzure Synapse Analytics даПараллельное хранилище данныхParallel Data WarehouseyesПараллельное хранилище данныхParallel Data Warehouse

Возвращает одну строку для каждой активной задачи в экземпляре SQL ServerSQL Server.Returns one row for each task that is active in the instance of SQL ServerSQL Server. Задача — это базовая единица выполнения в SQL Server.A task is the basic unit of execution in SQL Server. К примерам задач относятся запрос, имя входа, выход из системы и системные задачи, такие как действие очистки фантомов, активность контрольных точек, модуль записи журнала, параллельное действие повтора.Examples of tasks include a query, a login, a logout, and system tasks like ghost cleanup activity, checkpoint activity, log writer, parallel redo activity. Дополнительные сведения о задачах см. в разделе руководств по архитектуре потоков и задач.For more information about tasks, see the Thread and Task Architecture Guide.

Примечание

Чтобы вызвать эту функцию из Azure Synapse Analytics (Хранилище данных SQL)Azure Synapse Analytics (SQL Data Warehouse) или Параллельное хранилище данныхParallel Data Warehouse , используйте имя sys. dm_pdw_nodes_os_tasks.To call this from Azure Synapse Analytics (Хранилище данных SQL)Azure Synapse Analytics (SQL Data Warehouse) or Параллельное хранилище данныхParallel Data Warehouse, use the name sys.dm_pdw_nodes_os_tasks.

Имя столбцаColumn name Тип данныхData type ОписаниеDescription
task_addresstask_address varbinary(8)varbinary(8) Адрес объекта в памяти.Memory address of the object.
task_statetask_state nvarchar(60)nvarchar(60) Состояние задачи.State of the task. Оно может быть одним из следующих.This can be one of the following:

Ожидание: ожидание рабочего потока.PENDING: Waiting for a worker thread.

ГОТОВ к запуску: готово к запуску, но ожидает получения такта.RUNNABLE: Runnable, but waiting to receive a quantum.

ВЫПОЛНЯЕТСЯ: в данный момент выполняется в планировщике.RUNNING: Currently running on the scheduler.

SUSPENDED: имеет рабочий, но ожидает события.SUSPENDED: Has a worker, but is waiting for an event.

Готово: завершено.DONE: Completed.

СПИНЛУП: завис в спин-блокировке.SPINLOOP: Stuck in a spinlock.
context_switches_countcontext_switches_count intint Число переключений контекста планировщика, которые задача уже выполнила.Number of scheduler context switches that this task has completed.
pending_io_countpending_io_count intint Количество физических операций ввода-вывода, выполняемых этой задачей.Number of physical I/Os that are performed by this task.
pending_io_byte_countpending_io_byte_count bigintbigint Суммарное количество байт, обработанных в операциях ввода-вывода, выполняемых этой задачей.Total byte count of I/Os that are performed by this task.
pending_io_byte_averagepending_io_byte_average intint Среднее количество байт, обработанных в операциях ввода-вывода, выполняемых этой задачей.Average byte count of I/Os that are performed by this task.
scheduler_idscheduler_id intint Идентификатор родительского планировщика.ID of the parent scheduler. Это дескриптор сведений планировщика для этой задачи.This is a handle to the scheduler information for this task. Дополнительные сведения см. в разделе sys. dm_os_schedulers ()Transact-SQL .For more information, see sys.dm_os_schedulers (Transact-SQL).
session_idsession_id smallintsmallint Идентификатор сеанса, связанного с задачей.ID of the session that is associated with the task.
exec_context_idexec_context_id intint Идентификатор контекста выполнения, связанного с задачей.Execution context ID that is associated with the task.
request_idrequest_id intint Идентификатор запроса задачи.ID of the request of the task. Дополнительные сведения см. в разделе sys. dm_exec_requests ()Transact-SQL .For more information, see sys.dm_exec_requests (Transact-SQL).
worker_addressworker_address varbinary(8)varbinary(8) Адрес в памяти для исполнителя, выполняющего задачу.Memory address of the worker that is running the task.

NULL = задача либо ожидает готовности исполнителя, либо выполнение задачи только что завершилось.NULL = Task is either waiting for a worker to be able to run, or the task has just finished running.

Дополнительные сведения см. в разделе sys. dm_os_workers ()Transact-SQL .For more information, see sys.dm_os_workers (Transact-SQL).
host_addresshost_address varbinary(8)varbinary(8) Адрес сервера в памяти.Memory address of the host.

0 = задача создавалась без помощи сервера.0 = Hosting was not used to create the task. Помогает идентифицировать сервер, использованный для создания этой задачи.This helps identify the host that was used to create this task.

Дополнительные сведения см. в разделе sys. dm_os_hosts ()Transact-SQL .For more information, see sys.dm_os_hosts (Transact-SQL).
parent_task_addressparent_task_address varbinary(8)varbinary(8) Адрес в памяти задачи, являющейся родительской задачей объекта.Memory address of the task that is the parent of the object.
pdw_node_idpdw_node_id intint Применимо к: Azure Synapse Analytics (Хранилище данных SQL)Azure Synapse Analytics (SQL Data Warehouse) , Параллельное хранилище данныхParallel Data WarehouseApplies to: Azure Synapse Analytics (Хранилище данных SQL)Azure Synapse Analytics (SQL Data Warehouse), Параллельное хранилище данныхParallel Data Warehouse

Идентификатор узла, на котором находится данное распределение.The identifier for the node that this distribution is on.

РазрешенияPermissions

В SQL ServerSQL Server необходимо VIEW SERVER STATE разрешение.On SQL ServerSQL Server, requires VIEW SERVER STATE permission.
На База данных SQLSQL Database уровнях Premium требуется VIEW DATABASE STATE разрешение в базе данных.On База данных SQLSQL Database Premium Tiers, requires the VIEW DATABASE STATE permission in the database. На База данных SQLSQL Database уровнях Standard и Basic требуется Администратор сервера или учетная запись администратора Azure Active Directory .On База данных SQLSQL Database Standard and Basic Tiers, requires the Server admin or an Azure Active Directory admin account.

ПримерыExamples

A.A. Наблюдение за параллельными запросамиMonitoring parallel requests

Для запросов, которые выполняются параллельно, вы увидите несколько строк для одного сочетания ( <session_id> , <request_id> ).For requests that are executed in parallel, you will see multiple rows for the same combination of (<session_id>, <request_id>). Используйте следующий запрос, чтобы найти параметр конфигурации сервера max degree of parallelism для всех активных запросов.Use the following query to find the Configure the max degree of parallelism Server Configuration Option for all active requests.

Примечание

Request_id уникален в пределах сеанса.A request_id is unique within a session.

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. Сопоставление идентификатора сеанса с потоками WindowsAssociating session IDs with Windows threads

Можно использовать следующий запрос для сопоставления значения идентификатора сеанса со значением идентификатора потока Windows.You can use the following query to associate a session ID value with a Windows thread ID. Затем можно наблюдать за производительностью потока в системном мониторе Windows.You can then monitor the performance of the thread in the Windows Performance Monitor. Следующий запрос не возвращает сведений для сеансов, находящихся в ждущем режиме.The following query does not return information for sessions that are sleeping.

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  

См. такжеSee Also

SQL Server динамические административные представления, связанные с операционной системой ()Transact-SQL SQL Server Operating System Related Dynamic Management Views (Transact-SQL)
Руководство по архитектуре потоков и задачThread and Task Architecture Guide