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

S’APPLIQUE À : ouiSQL Server ouiAzure SQL Database ouiAzure Synapse Analytics (SQL DW) ouiParallel Data Warehouse APPLIES TO: yesSQL Server yesAzure SQL Database yesAzure Synapse Analytics (SQL DW) yesParallel Data Warehouse

Retourne une ligne pour chaque tâche active dans l'instance de SQL ServerSQL Server.Returns one row for each task that is active in the instance of SQL ServerSQL Server. Une tâche est l’unité d’exécution de base dans SQL Server.A task is the basic unit of execution in SQL Server. Voici quelques exemples de tâches : une requête, une connexion, une déconnexion et des tâches système telles que l’activité de nettoyage des fichiers fantômes, l’activité de point de contrôle, l’enregistreur de journal, l’activité de restauration parallèle.Examples of tasks include a query, a login, a logout, and system tasks like ghost cleanup activity, checkpoint activity, log writer, parallel redo activity. Pour plus d’informations sur les tâches, consultez le Guide d’architecture des threads et des tâches.For more information about tasks, see the Thread and Task Architecture Guide.

Notes

Pour l’appeler à partir de Azure Synapse Analytics (SQL DW)Azure Synapse Analytics (SQL DW) ou Parallel Data WarehouseParallel Data Warehouse, utilisez le nom 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.

Nom de la colonneColumn name Type de donnéesData type DescriptionDescription
task_addresstask_address varbinary(8)varbinary(8) Adresse mémoire de l'objet.Memory address of the object.
task_statetask_state nvarchar(60)nvarchar(60) État de la tâche.State of the task. Il peut s'agir de l'un des états suivants :This can be one of the following:

PENDING : En attente d'un thread de travail.PENDING: Waiting for a worker thread.

RUNNABLE : Exécutable, mais en attente d'un quantum.RUNNABLE: Runnable, but waiting to receive a quantum.

RUNNING : En cours d'exécution sur le planificateur.RUNNING: Currently running on the scheduler.

SUSPENDED : Doté d'un processus de travail, mais en attente d'un événement.SUSPENDED: Has a worker, but is waiting for an event.

DONE : Terminé.DONE: Completed.

SPINLOOP : Bloqué dans une boucle.SPINLOOP: Stuck in a spinlock.
context_switches_countcontext_switches_count intint Nombre de commutateurs de contexte de planificateur exécutés par cette tâche.Number of scheduler context switches that this task has completed.
pending_io_countpending_io_count intint Nombre d'E/S physiques qui sont effectuées par cette tâche.Number of physical I/Os that are performed by this task.
pending_io_byte_countpending_io_byte_count bigintbigint Nombre total d'octets d'E/S qui sont traités par cette tâche.Total byte count of I/Os that are performed by this task.
pending_io_byte_averagepending_io_byte_average intint Nombre moyen d'octets d'E/S qui sont traités par cette tâche.Average byte count of I/Os that are performed by this task.
scheduler_idscheduler_id intint ID du planificateur parent.ID of the parent scheduler. Handle pointant vers les informations de planification associées à cette tâche.This is a handle to the scheduler information for this task. Pour plus d’informations, consultez sys. (DM_OS_SCHEDULERS Transact-)SQL.For more information, see sys.dm_os_schedulers (Transact-SQL).
session_idsession_id smallintsmallint ID de la session qui est associée à la tâche.ID of the session that is associated with the task.
exec_context_idexec_context_id intint ID du contexte d'exécution qui est associé à la tâche.Execution context ID that is associated with the task.
request_idrequest_id intint ID de la demande de la tâche.ID of the request of the task. Pour plus d’informations, consultez sys. (DM_EXEC_REQUESTS Transact-)SQL.For more information, see sys.dm_exec_requests (Transact-SQL).
worker_addressworker_address varbinary(8)varbinary(8) Adresse mémoire du processus de travail qui exécute la tâche.Memory address of the worker that is running the task.

NULL = La tâche est en attente d'un processus de travail pour s'exécuter ou son exécution vient de se terminer.NULL = Task is either waiting for a worker to be able to run, or the task has just finished running.

Pour plus d’informations, consultez sys. (DM_OS_WORKERS Transact-)SQL.For more information, see sys.dm_os_workers (Transact-SQL).
host_addresshost_address varbinary(8)varbinary(8) Adresse mémoire de l'hôte.Memory address of the host.

0 = Aucun hôte n'a été utilisé pour créer la tâche.0 = Hosting was not used to create the task. Cela permet d'identifier l'hôte utilisé pour créer cette tâche.This helps identify the host that was used to create this task.

Pour plus d’informations, consultez 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) Adresse mémoire de la tâche qui est le parent de l'objet.Memory address of the task that is the parent of the object.
pdw_node_idpdw_node_id intint S’applique à: 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

Identificateur du nœud sur lequel cette distribution se trouve.The identifier for the node that this distribution is on.

AutorisationsPermissions

Sur SQL ServerSQL Server, requiert VIEW SERVER STATE autorisation.On SQL ServerSQL Server, requires VIEW SERVER STATE permission.
Sur les niveaux SQL DatabaseSQL Database Premium, requiert l’autorisation VIEW DATABASE STATE dans la base de données.On SQL DatabaseSQL Database Premium Tiers, requires the VIEW DATABASE STATE permission in the database. Sur SQL DatabaseSQL Database niveaux standard et de base, nécessite l' administrateur du serveur ou un compte d' administrateur Azure Active Directory .On SQL DatabaseSQL Database Standard and Basic Tiers, requires the Server admin or an Azure Active Directory admin account.

ExemplesExamples

A.A. Surveillance des demandes parallèlesMonitoring parallel requests

Pour les requêtes exécutées en parallèle, plusieurs lignes s’affichent pour la même combinaison 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>). Utilisez la requête suivante pour trouver l' option de configuration de serveur configurer l’option max degree of parallelism pour toutes les demandes actives.Use the following query to find the Configure the max degree of parallelism Server Configuration Option for all active requests.

Notes

Une request_id est unique au sein d’une session.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. Association d'ID de session à des threads WindowsAssociating session IDs with Windows threads

Vous pouvez utiliser la requête suivante pour associer une valeur d'ID de session à un ID de thread Windows.You can use the following query to associate a session ID value with a Windows thread ID. Vous pouvez ensuite surveiller les performances du thread dans l'Analyseur de performances Windows.You can then monitor the performance of the thread in the Windows Performance Monitor. La requête suivante ne renvoie pas d'informations pour les sessions en veille.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  

Voir aussiSee Also

SQL Server les (vues de gestion dynamique liées au système d') exploitation Transact-SQLSQL Server Operating System Related Dynamic Management Views (Transact-SQL)
Guide d’architecture de thread et de tâcheThread and Task Architecture Guide