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

APLICA-SE A: simSQL Server simBanco de Dados SQL do Azure simAzure Synapse Analytics (SQL DW) simParallel Data Warehouse APPLIES TO: yesSQL Server yesAzure SQL Database yesAzure Synapse Analytics (SQL DW) yesParallel Data Warehouse

Retorna uma linha para cada tarefa que está ativa na instância do SQL ServerSQL Server.Returns one row for each task that is active in the instance of SQL ServerSQL Server. Para obter mais informações sobre tarefas, consulte o Guia de arquitetura de threads e tarefas.For more information about tasks, see the Thread and Task Architecture Guide.

Observação

Para chamá-lo de Azure Synapse Analytics (SQL DW)Azure Synapse Analytics (SQL DW) ou Parallel Data WarehouseParallel Data Warehouse, use o nome Sys. dm _pdw_nodes_os_tasks.To call this from Azure Synapse Analytics (SQL DW)Azure Synapse Analytics (SQL DW) or Parallel Data WarehouseParallel Data Warehouse, use the name sys.dm_pdw_nodes_os_tasks.

Nome da colunaColumn name Tipo de dadosData type DescriçãoDescription
task_addresstask_address varbinary(8)varbinary(8) Endereço de memória do objeto.Memory address of the object.
task_statetask_state nvarchar(60)nvarchar(60) O estado da tarefa.State of the task. Pode ser um dos seguintes:This can be one of the following:

PENDENTE Esperando por um thread de trabalho.PENDING: Waiting for a worker thread.

XTERM Executável, mas aguardando para receber um Quantum.RUNNABLE: Runnable, but waiting to receive a quantum.

EXECUTADO Atualmente em execução no agendador.RUNNING: Currently running on the scheduler.

SUSPENSO Tem um trabalho, mas está aguardando um evento.SUSPENDED: Has a worker, but is waiting for an event.

TRABALHADO Conclusão.DONE: Completed.

SPINLOOP: Preso em um SpinLock.SPINLOOP: Stuck in a spinlock.
context_switches_countcontext_switches_count intint Número de alternâncias de contexto de agendador que esta tarefa completou.Number of scheduler context switches that this task has completed.
pending_io_countpending_io_count intint Número de E/Ss físicas executadas por esta tarefa.Number of physical I/Os that are performed by this task.
pending_io_byte_countpending_io_byte_count bigintbigint Contagem total de bytes de E/Ss que são executadas por esta tarefa.Total byte count of I/Os that are performed by this task.
pending_io_byte_averagepending_io_byte_average intint Contagem média de bytes de E/Ss que são executadas por esta tarefa.Average byte count of I/Os that are performed by this task.
scheduler_idscheduler_id intint ID do agendador pai.ID of the parent scheduler. Este é um identificador das informações de agendador para esta tarefa.This is a handle to the scheduler information for this task. Para obter mais informações, consulte Sys. dm (_OS_SCHEDULERS Transact-)SQL.For more information, see sys.dm_os_schedulers (Transact-SQL).
session_idsession_id smallintsmallint ID da sessão que está associado à tarefa.ID of the session that is associated with the task.
exec_context_idexec_context_id intint ID do contexto de execução que está associado à tarefa.Execution context ID that is associated with the task.
request_idrequest_id intint ID da solicitação da tarefa.ID of the request of the task. Para obter mais informações, consulte Sys. dm (_EXEC_REQUESTS Transact-)SQL.For more information, see sys.dm_exec_requests (Transact-SQL).
worker_addressworker_address varbinary(8)varbinary(8) Endereço de memória do trabalhador que está executando a tarefa.Memory address of the worker that is running the task.

NULL = A tarefa está esperando que um trabalhador possa ser executado ou a execução da tarefa foi recém-concluída.NULL = Task is either waiting for a worker to be able to run, or the task has just finished running.

Para obter mais informações, consulte Sys. dm (_OS_WORKERS Transact-)SQL.For more information, see sys.dm_os_workers (Transact-SQL).
host_addresshost_address varbinary(8)varbinary(8) Endereço de memória do host.Memory address of the host.

0 = A hospedagem não foi usada para criar a tarefa.0 = Hosting was not used to create the task. Isto ajuda a identificar o host que foi usado para criar esta tarefa.This helps identify the host that was used to create this task.

Para obter mais informações, consulte 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) Endereço de memória da tarefa que é pai do objeto.Memory address of the task that is the parent of the object.
pdw_node_idpdw_node_id intint Aplica-se a: Azure Synapse Analytics (SQL DW)Azure Synapse Analytics (SQL DW), Parallel Data WarehouseParallel Data WarehouseApplies to: Azure Synapse Analytics (SQL DW)Azure Synapse Analytics (SQL DW), Parallel Data WarehouseParallel Data Warehouse

O identificador do nó em que essa distribuição está.The identifier for the node that this distribution is on.

PermissõesPermissions

No SQL ServerSQL Server, requer a permissão VIEW SERVER STATE.On SQL ServerSQL Server, requires VIEW SERVER STATE permission.
Nas camadas Premium Banco de Dados SQLSQL Database, o requer a permissão VIEW DATABASE STATE no banco de dados.On Banco de Dados SQLSQL Database Premium Tiers, requires the VIEW DATABASE STATE permission in the database. Nas camadas Standard e Basic Banco de Dados SQLSQL Database, o requer o administrador do servidor ou uma conta de administrador do Azure Active Directory .On Banco de Dados SQLSQL Database Standard and Basic Tiers, requires the Server admin or an Azure Active Directory admin account.

ExemplosExamples

A.A. Monitorando solicitações paralelasMonitoring parallel requests

Para solicitações executadas em paralelo, você verá várias linhas para a mesma combinação de (<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>). Use a consulta a seguir para localizar a opção de configuração de servidor definir o grau máximo de paralelismo para todas as solicitações ativas.Use the following query to find the Configure the max degree of parallelism Server Configuration Option for all active requests.

Observação

Um request_id é exclusivo dentro de uma sessão.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.B. Associando IDs de sessão a threads do WindowsAssociating session IDs with Windows threads

Você pode usar a consulta a seguir para associar um valor de ID de sessão a um ID de thread do Windows.You can use the following query to associate a session ID value with a Windows thread ID. Depois, poderá monitorar o desempenho do thread no Monitor de Desempenho do Windows.You can then monitor the performance of the thread in the Windows Performance Monitor. A consulta a seguir não retorna informações de sessões que estão suspensas.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  

Consulte tambémSee Also

SQL Server exibições ()de gerenciamento dinâmico relacionadas ao sistema operacional SQL Server Operating System Related Dynamic Management Views (Transact-SQL)
Guia de arquitetura de thread e tarefaThread and Task Architecture Guide