Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a:Banco de Dados SQL do
Azure
Instância Gerenciada de SQL do Azure
Azure Synapse Analytics
Analytics Platform System (PDW)
Banco de Dados SQL no Microsoft Fabric
Devolve uma linha para cada tarefa ativa na instância do SQL Server. Uma tarefa é a unidade básica de execução no SQL Server. Exemplos de tarefas incluem uma consulta, um login, um logout e tarefas do sistema como atividade de limpeza de fantasmas, atividade de checkpoint, escrita de logs, atividade de refazer paralelamente. Para mais informações sobre tarefas, consulte o Guia de Thread e Arquitetura de Tarefas.
Observação
Para chamar isto a partir do Azure Synapse Analytics ou Analytics Platform System (PDW), use o nome sys.dm_pdw_nodes_os_tasks. Essa sintaxe não é suportada pelo pool SQL sem servidor no Azure Synapse Analytics.
| Nome da coluna | Tipo de dados | Description |
|---|---|---|
| task_address | varbinary(8) | Endereço de memória do objeto. |
| task_state | nvarchar(60) | Estado da tarefa. Pode ser uma das seguintes opções: PENDENTE: À espera de um tópico de trabalho. RUNNABLE: Executável, mas à espera de receber um quantum. A CORRER: Atualmente a funcionar no agendador. SUSPENSO: Tem um trabalhador, mas está à espera de um evento. FEITO: Concluído. SPINLOOP: Preso num spinlock. |
| context_switches_count | int | Número de trocas de contexto do agendador que esta tarefa completou. |
| pending_io_count | int | Número de E/S físicas realizadas por esta tarefa. |
| pending_io_byte_count | bigint | Contagem total de bytes de E/S realizadas por esta tarefa. |
| pending_io_byte_average | int | Contagem média de bytes de E/S realizadas por esta tarefa. |
| scheduler_id | int | ID do agendador principal. Este é um handle para a informação do agendador para esta tarefa. Para mais informações, consulte sys.dm_os_schedulers (Transact-SQL). |
| session_id | smallint | ID da sessão associada à tarefa. |
| exec_context_id | int | ID de contexto de execução associado à tarefa. |
| request_id | int | ID do pedido da tarefa. Para obter mais informações, consulte sys.dm_exec_requests (Transact-SQL). |
| worker_address | varbinary(8) | Endereço de memória do trabalhador que está a executar a tarefa. NULL = A tarefa é esperar que um trabalhador consiga executar, ou a tarefa acabou de terminar. Para mais informações, consulte sys.dm_os_workers (Transact-SQL). |
| host_address | varbinary(8) | Endereço de memória do anfitrião. 0 = O alojamento não foi usado para criar a tarefa. Isto ajuda a identificar o host que foi usado para criar esta tarefa. Para mais informações, consulte sys.dm_os_hosts (Transact-SQL). |
| parent_task_address | varbinary(8) | Endereço de memória da tarefa que é o pai do objeto. |
| pdw_node_id | int |
Aplica-se a: Azure Synapse Analytics, Analytics Platform System (PDW) O identificador do nó em que esta distribuição se encontra. |
Permissions
No SQL Server e na Instância Gerenciada do SQL, requer VIEW SERVER STATE permissão.
No Banco de Dados SQL Basic, S0e S1 objetivos de serviço e para bancos de dados em pools elásticos , a conta de de administrador do servidor, a conta de de administrador do Microsoft Entra ou a associação aode função de servidor ##MS_ServerStateReader## é necessária. Em todos os outros objetivos de serviço do Banco de dados SQL, é necessária a permissão VIEW DATABASE STATE no banco de dados ou a associação à função de servidor ##MS_ServerStateReader##.
Permissões para SQL Server 2022 e posterior
Requer a permissão VIEW SERVER PERFORMANCE STATE no servidor.
Examples
A. Monitorização de pedidos paralelos
Para pedidos executados em paralelo, verá várias linhas para a mesma combinação de (<session_id>, <request_id>). Use a seguinte consulta para encontrar a opção Configurar o grau máximo de paralelismo Configuração do servidor para todos os pedidos ativos.
Observação
Um request_id é único dentro de uma sessão.
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. Associar IDs de sessão a threads do Windows
Pode usar a seguinte consulta para associar um valor de ID de sessão a um ID de thread do Windows. Pode então monitorizar o desempenho do thread no Windows Performance Monitor. A consulta seguinte não devolve informação para sessões que estejam em suspensão.
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ém
Exibições de gerenciamento dinâmico relacionadas ao sistema operacional SQL Server (Transact-SQL)
Guia de Arquitetura de Threads e Tarefas