sys.dm_exec_requests (Transact-SQL)sys.dm_exec_requests (Transact-SQL)

CETTE RUBRIQUE S’APPLIQUE À :ouiSQL Server (à partir de la version 2008)ouiAzure SQL DatabasenonAzure SQL Data Warehouse nonParallel Data Warehouse THIS TOPIC APPLIES TO:yesSQL Server (starting with 2008)yesAzure SQL DatabasenoAzure SQL Data Warehouse noParallel Data Warehouse

Retourne des informations sur chaque demande qui s'exécute dans SQL ServerSQL Server.Returns information about each request that is executing within SQL ServerSQL Server.

Note

Pour exécuter du code externe à SQL ServerSQL Server (par exemple, des procédures stockées étendues et des requêtes distribuées), un thread doit s'exécuter en dehors du contrôle du planificateur non préemptif.To execute code that is outside SQL ServerSQL Server (for example, extended stored procedures and distributed queries), a thread has to execute outside the control of the non-preemptive scheduler. Pour ce faire, un processus de travail passe en mode préemptif.To do this, a worker switches to preemptive mode. Les valeurs temporelles retournées par cette vue de gestion dynamique n'incluent pas le temps passé en mode préemptif.Time values returned by this dynamic management view do not include time spent in preemptive mode.

Nom de colonneColumn name Type de donnéesData type DescriptionDescription
session_idsession_id smallintsmallint ID de la session à laquelle cette demande est liée.ID of the session to which this request is related. N'accepte pas la valeur NULL.Is not nullable.
request_idrequest_id intint ID de la demande.ID of the request. Unique dans le contexte de la session.Unique in the context of the session. N'accepte pas la valeur NULL.Is not nullable.
start_timestart_time datetimedatetime Horodateur lors la réception de la demande.Timestamp when the request arrived. N'accepte pas la valeur NULL.Is not nullable.
statusstatus nvarchar (30)nvarchar(30) Statut de la demande.Status of the request. Il peut s'agir de l'un des états suivants :This can be one of the following:

Arrière-planBackground
Exécution en coursRunning
ExécutableRunnable
En état de veilleSleeping
SuspenduSuspended

N'accepte pas la valeur NULL.Is not nullable.
commandecommand nvarchar(32)nvarchar(32) Identifie le type de commande en cours de traitement.Identifies the current type of command that is being processed. Les types de commandes courants comprennent notamment :Common command types include the following:

SELECTSELECT
INSERTINSERT
UPDATEUPDATE
DELETEDELETE
BACKUP LOGBACKUP LOG
BACKUP DATABASEBACKUP DATABASE
DBCCDBCC
FORFOR

Le texte de la demande peut être extrait à l'aide de sys.dm_exec_sql_text avec le paramètre sql_handle correspondant pour la demande.The text of the request can be retrieved by using sys.dm_exec_sql_text with the corresponding sql_handle for the request. Des processus système internes définissent la commande en fonction du type de tâche à exécuter.Internal system processes set the command based on the type of task they perform. Il peut s'agir des tâches suivantes :Tasks can include the following:

LOCK MONITORLOCK MONITOR
CHECKPOINTLAZYCHECKPOINTLAZY
WRITERWRITER

N'accepte pas la valeur NULL.Is not nullable.
sql_handlesql_handle varbinary(64)varbinary(64) Table de hachage du texte SQL de la demande.Hash map of the SQL text of the request. Autorise la valeur NULL.Is nullable.
statement_start_offsetstatement_start_offset intint Nombre de caractères dans le traitement ou la procédure stockée en cours d'exécution où les instructions en cours d'exécution commencent.Number of characters into the currently executing batch or stored procedure at which the currently executing statement starts. Cette valeur peut être utilisée avec les fonctions de gestion dynamique sql_handle, statement_end_offset et sys.dm_exec_sql_text pour extraire l'instruction en cours d'exécution de la demande.Can be used together with the sql_handle, the statement_end_offset, and the sys.dm_exec_sql_text dynamic management function to retrieve the currently executing statement for the request. Autorise la valeur NULL.Is nullable.
statement_end_offsetstatement_end_offset intint Nombre de caractères dans le traitement ou la procédure stockée en cours d'exécution où les instructions en cours d'exécution se terminent.Number of characters into the currently executing batch or stored procedure at which the currently executing statement ends. Cette valeur peut être utilisée avec les fonctions de gestion dynamique sql_handle, statement_end_offset et sys.dm_exec_sql_text pour extraire l'instruction en cours d'exécution de la demande.Can be used together with the sql_handle, the statement_end_offset, and the sys.dm_exec_sql_text dynamic management function to retrieve the currently executing statement for the request. Autorise la valeur NULL.Is nullable.
plan_handleplan_handle varbinary(64)varbinary(64) Table de hachage du plan pour l'exécution SQL.Hash map of the plan for SQL execution. Autorise la valeur NULL.Is nullable.
database_iddatabase_id smallintsmallint ID de la base de données dans laquelle la requête s'exécute.ID of the database the request is executing against. N'accepte pas la valeur NULL.Is not nullable.
user_iduser_id intint ID de l'utilisateur qui a envoyé la demande.ID of the user who submitted the request. N'accepte pas la valeur NULL.Is not nullable.
connection_idconnection_id uniqueidentifieruniqueidentifier ID de la connexion à laquelle la demande est parvenue.ID of the connection on which the request arrived. Autorise la valeur NULL.Is nullable.
blocking_session_idblocking_session_id smallintsmallint ID de la session qui bloque la demande.ID of the session that is blocking the request. Si cette colonne est NULL, la demande n'est pas bloquée, ou les informations de session de la session bloquant la demande ne sont pas disponibles (ou ne peuvent pas être identifiées).If this column is NULL, the request is not blocked, or the session information of the blocking session is not available (or cannot be identified).

-2 = La ressource qui bloque la demande appartient à une transaction distribuée orpheline.-2 = The blocking resource is owned by an orphaned distributed transaction.

-3 = La ressource qui bloque la demande appartient à une transaction de récupération différée.-3 = The blocking resource is owned by a deferred recovery transaction.

-4 = L'ID de session du propriétaire du verrou qui bloque la demande n'a pas pu être déterminé pour le moment en raison de transitions d'état de verrou interne.-4 = Session ID of the blocking latch owner could not be determined at this time because of internal latch state transitions.
wait_typewait_type nvarchar (60)nvarchar(60) Si la demande est actuellement bloquée, cette colonne retourne le type d'attente.If the request is currently blocked, this column returns the type of wait. Autorise la valeur NULL.Is nullable.

Pour plus d’informations sur les types d’attentes, consultez sys.dm_os_wait_stats ( Transact-SQL ) .For information about types of waits, see sys.dm_os_wait_stats (Transact-SQL).
wait_timewait_time intint Si la demande est actuellement bloquée, cette colonne retourne la durée de l'attente, en millisecondes.If the request is currently blocked, this column returns the duration in milliseconds, of the current wait. N'accepte pas la valeur NULL.Is not nullable.
last_wait_typelast_wait_type nvarchar (60)nvarchar(60) Si la demande a été bloquée précédemment, cette colonne indique le type de la dernière attente.If this request has previously been blocked, this column returns the type of the last wait. N'accepte pas la valeur NULL.Is not nullable.
wait_resourcewait_resource nvarchar (256)nvarchar(256) Si la demande est actuellement bloquée, cette colonne retourne la ressource attendue par la demande.If the request is currently blocked, this column returns the resource for which the request is currently waiting. N'accepte pas la valeur NULL.Is not nullable.
open_transaction_countopen_transaction_count intint Nombre de transactions ouvertes pour cette demande.Number of transactions that are open for this request. N'accepte pas la valeur NULL.Is not nullable.
open_resultset_countopen_resultset_count intint Nombre de jeux de résultats ouverts pour cette demande.Number of result sets that are open for this request. N'accepte pas la valeur NULL.Is not nullable.
transaction_idtransaction_id bigintbigint ID de la transaction dans laquelle cette demande s'exécute.ID of the transaction in which this request executes. N'accepte pas la valeur NULL.Is not nullable.
context_infocontext_info varbinary(128)varbinary(128) Valeur CONTEXT_INFO de la session.CONTEXT_INFO value of the session. Autorise la valeur NULL.Is nullable.
percent_completepercent_complete realreal Le pourcentage de travail terminé pour les commandes suivantes :Percentage of work completed for the following commands:

ALTER INDEX REORGANIZEALTER INDEX REORGANIZE
Option AUTO_SHRINK avec ALTER DATABASEAUTO_SHRINK option with ALTER DATABASE
BACKUP DATABASEBACKUP DATABASE
DBCC CHECKDBDBCC CHECKDB
DBCC CHECKFILEGROUPDBCC CHECKFILEGROUP
DBCC CHECKTABLEDBCC CHECKTABLE
DBCC INDEXDEFRAGDBCC INDEXDEFRAG
DBCC SHRINKDATABASEDBCC SHRINKDATABASE
DBCC SHRINKFILEDBCC SHRINKFILE
RECOVERYRECOVERY
RESTORE DATABASERESTORE DATABASE
ROLLBACKROLLBACK
TDE ENCRYPTIONTDE ENCRYPTION

N'accepte pas la valeur NULL.Is not nullable.
estimated_completion_timeestimated_completion_time bigintbigint Interne uniquement.Internal only. N'accepte pas la valeur NULL.Is not nullable.
cpu_timecpu_time intint Quantité de temps UC (en millisecondes) utilisée par la demande.CPU time in milliseconds that is used by the request. N'accepte pas la valeur NULL.Is not nullable.
total_elapsed_timetotal_elapsed_time intint Temps total écoulé en millisecondes depuis l'arrivée de la demande.Total time elapsed in milliseconds since the request arrived. N'accepte pas la valeur NULL.Is not nullable.
scheduler_idscheduler_id intint ID du planificateur qui planifie cette demande.ID of the scheduler that is scheduling this request. N'accepte pas la valeur NULL.Is not nullable.
task_addresstask_address varbinary (8)varbinary(8) Adresse mémoire de la tâche associée à la demande.Memory address allocated to the task that is associated with this request. Autorise la valeur NULL.Is nullable.
readsreads bigintbigint Nombre de lectures effectuées par la demande.Number of reads performed by this request. N'accepte pas la valeur NULL.Is not nullable.
writeswrites bigintbigint Nombre d'écritures effectuées par la demande.Number of writes performed by this request. N'accepte pas la valeur NULL.Is not nullable.
logical_readslogical_reads bigintbigint Nombre de lectures logiques effectuées par la demande.Number of logical reads that have been performed by the request. N'accepte pas la valeur NULL.Is not nullable.
text_sizetext_size intint Valeur du paramètre TEXTSIZE pour la demande.TEXTSIZE setting for this request. N'accepte pas la valeur NULL.Is not nullable.
languelanguage nvarchar (128)nvarchar(128) Valeur du paramètre de langue pour la demande.Language setting for the request. Autorise la valeur NULL.Is nullable.
date_formatdate_format nvarchar(3)nvarchar(3) Valeur du paramètre DATEFORMAT pour la demande.DATEFORMAT setting for the request. Autorise la valeur NULL.Is nullable.
date_firstdate_first smallintsmallint Valeur du paramètre DATEFIRST pour la demande.DATEFIRST setting for the request. N'accepte pas la valeur NULL.Is not nullable.
quoted_identifierquoted_identifier bitbit 1 = QUOTED_IDENTIFIER est activé (ON) pour la demande.1 = QUOTED_IDENTIFIER is ON for the request. Sinon, la valeur est 0.Otherwise, it is 0.

N'accepte pas la valeur NULL.Is not nullable.
arithabortarithabort bitbit 1 = ARITHABORT est activé (ON) pour la demande.1 = ARITHABORT setting is ON for the request. Sinon, la valeur est 0.Otherwise, it is 0.

N'accepte pas la valeur NULL.Is not nullable.
ansi_null_dflt_onansi_null_dflt_on bitbit 1 = ANSI_NULL_DFLT_ON est activé (ON) pour la demande.1 = ANSI_NULL_DFLT_ON setting is ON for the request. Sinon, la valeur est 0.Otherwise, it is 0.

N'accepte pas la valeur NULL.Is not nullable.
ansi_defaultsansi_defaults bitbit 1 = ANSI_DEFAULTS est activé (ON) pour la demande.1 = ANSI_DEFAULTS setting is ON for the request. Sinon, la valeur est 0.Otherwise, it is 0.

N'accepte pas la valeur NULL.Is not nullable.
ansi_warningsansi_warnings bitbit 1 = ANSI_WARNINGS est activé (ON) pour la demande.1 = ANSI_WARNINGS setting is ON for the request. Sinon, la valeur est 0.Otherwise, it is 0.

N'accepte pas la valeur NULL.Is not nullable.
ansi_paddingansi_padding bitbit 1 = ANSI_PADDING est activé (ON) pour la demande.1 = ANSI_PADDING setting is ON for the request.

Sinon, la valeur est 0.Otherwise, it is 0.

N'accepte pas la valeur NULL.Is not nullable.
ansi_nullsansi_nulls bitbit 1 = ANSI_NULLS est activé (ON) pour la demande.1 = ANSI_NULLS setting is ON for the request. Sinon, la valeur est 0.Otherwise, it is 0.

N'accepte pas la valeur NULL.Is not nullable.
concat_null_yields_nullconcat_null_yields_null bitbit 1 = CONCAT_NULL_YIELDS_NULL est activé (ON) pour la demande.1 = CONCAT_NULL_YIELDS_NULL setting is ON for the request. Sinon, la valeur est 0.Otherwise, it is 0.

N'accepte pas la valeur NULL.Is not nullable.
transaction_isolation_leveltransaction_isolation_level smallintsmallint Niveau d'isolation avec lequel la transaction pour cette demande est créée.Isolation level with which the transaction for this request is created. N'accepte pas la valeur NULL.Is not nullable.

0 = Non spécifié0 = Unspecified

1 = Lecture non validée1 = ReadUncomitted

2 = Lecture validée2 = ReadCommitted

3 = Répétable3 = Repeatable

4 = Sérialisable4 = Serializable

5 = Instantané5 = Snapshot
lock_timeoutlock_timeout intint Délai d'attente de verrou externe pour la demande, en millisecondes.Lock time-out period in milliseconds for this request. N'accepte pas la valeur NULL.Is not nullable.
deadlock_prioritydeadlock_priority intint Paramètre DEADLOCK_PRIORITY de la demande.DEADLOCK_PRIORITY setting for the request. N'accepte pas la valeur NULL.Is not nullable.
row_countrow_count bigintbigint Nombre de lignes retournées au client par cette demande.Number of rows that have been returned to the client by this request. N'accepte pas la valeur NULL.Is not nullable.
prev_errorprev_error intint Dernière erreur générée pendant l'exécution de la demande.Last error that occurred during the execution of the request. N'accepte pas la valeur NULL.Is not nullable.
nest_levelnest_level intint Niveau d'imbrication actuel du code en cours d'exécution sur la demande.Current nesting level of code that is executing on the request. N'accepte pas la valeur NULL.Is not nullable.
granted_query_memorygranted_query_memory intint Nombre de pages allouées à l'exécution d'une requête dans la demande.Number of pages allocated to the execution of a query on the request. N'accepte pas la valeur NULL.Is not nullable.
executing_managed_codeexecuting_managed_code bitbit Indique si une demande spécifique est en train d'exécuter des objets CLR (Common Language Runtime) tels que des routines, des types et des déclencheurs.Indicates whether a specific request is currently executing common language runtime objects, such as routines, types, and triggers. Cette valeur est définie pour toute la durée pendant laquelle un objet CLR réside dans la pile, même lorsqu'elle exécute Transact-SQLTransact-SQL à partir du CLR.It is set for the full time a common language runtime object is on the stack, even while running Transact-SQLTransact-SQL from within common language runtime. N'accepte pas la valeur NULL.Is not nullable.
group_idgroup_id intint ID du groupe de charge de travail auquel cette requête appartient.ID of the workload group to which this query belongs. N'accepte pas la valeur NULL.Is not nullable.
query_hashquery_hash binary (8)binary(8) La valeur de hachage binaire calculée sur la requête et utilisée pour identifier des requêtes avec une logique similaire.Binary hash value calculated on the query and used to identify queries with similar logic. Vous pouvez utiliser le hachage de requête pour déterminer l'utilisation des ressources globale pour les requêtes qui diffèrent uniquement par les valeurs littérales.You can use the query hash to determine the aggregate resource usage for queries that differ only by literal values.
query_plan_hashquery_plan_hash binary (8)binary(8) Valeur de hachage binaire calculée sur le plan d'exécution de requête et utilisée pour identifier des plans d'exécution de requête semblables.Binary hash value calculated on the query execution plan and used to identify similar query execution plans. Vous pouvez utiliser le hachage de plan de requête pour rechercher le coût cumulatif de requêtes avec les plans d'exécution semblables.You can use query plan hash to find the cumulative cost of queries with similar execution plans.
statement_sql_handlestatement_sql_handle varbinary(64)varbinary(64) S'applique à: SQL Server 2014SQL Server 2014 et SQL Server 2017SQL Server 2017.Applies to: SQL Server 2014SQL Server 2014 through SQL Server 2017SQL Server 2017.

Descripteur SQL de la requête individuelle.SQL handle of the individual query.
statement_context_idstatement_context_id bigintbigint S'applique à: SQL Server 2014SQL Server 2014 et SQL Server 2017SQL Server 2017.Applies to: SQL Server 2014SQL Server 2014 through SQL Server 2017SQL Server 2017.

La clé étrangère facultatif sys.query_context_settings.The optional foreign key to sys.query_context_settings.
dopdop intint S'applique à: SQL Server 2016SQL Server 2016 et SQL Server 2017SQL Server 2017.Applies to: SQL Server 2016SQL Server 2016 through SQL Server 2017SQL Server 2017.

Le degré de parallélisme de la requête.The degree of parallelism of the query.
parallel_worker_countparallel_worker_count intint S'applique à: SQL Server 2016SQL Server 2016 et SQL Server 2017SQL Server 2017.Applies to: SQL Server 2016SQL Server 2016 through SQL Server 2017SQL Server 2017.

Le nombre de travailleurs parallèles réservés, s’il s’agit d’une requête parallèle.The number of reserved parallel workers if this is a parallel query.
external_script_request_idexternal_script_request_id uniqueidentifieruniqueidentifier S'applique à: SQL Server 2016SQL Server 2016 et SQL Server 2017SQL Server 2017.Applies to: SQL Server 2016SQL Server 2016 through SQL Server 2017SQL Server 2017.

L’ID de demande de script externe associé à la demande en cours.The external script request ID associated with the current request.
is_resumableis_resumable bitbit S'applique à: SQL Server 2017SQL Server 2017 et SQL Server 2017SQL Server 2017.Applies to: SQL Server 2017SQL Server 2017 through SQL Server 2017SQL Server 2017.

Indique si la demande est une opération d’index peut être repris.Indicates whether the request is a resumable index operation.

PermissionsPermissions

Si l’utilisateur a VIEW SERVER STATE autorisation sur le serveur, l’utilisateur voit en cours d’exécution toutes les sessions sur l’instance de SQL ServerSQL Server; sinon, l’utilisateur voit uniquement la session active.If the user has VIEW SERVER STATE permission on the server, the user will see all executing sessions on the instance of SQL ServerSQL Server; otherwise, the user will see only the current session. VIEW SERVER STATEne peut pas être accordées dans Base de données SQLSQL Database donc sys.dm_exec_requests est toujours limitée à la connexion actuelle.VIEW SERVER STATE cannot be granted in Base de données SQLSQL Database so sys.dm_exec_requests is always limited to the current connection.

ExemplesExamples

A.A. Recherche du texte de la requête pour un lot en cours d'exécutionFinding the query text for a running batch

L'exemple suivant interroge sys.dm_exec_requests afin de rechercher la requête qui vous intéresse et de copier son sql_handle de la sortie.The following example queries sys.dm_exec_requests to find the interesting query and copy its sql_handle from the output.

SELECT * FROM sys.dm_exec_requests;  
GO  

Puis, pour obtenir le texte d'instruction, utilisez le sql_handle copié avec la fonction système sys.dm_exec_sql_text(sql_handle).Then, to obtain the statement text, use the copied sql_handle with system function sys.dm_exec_sql_text(sql_handle).

SELECT * FROM sys.dm_exec_sql_text(< copied sql_handle >);  
GO  

B.B. Recherche de tous les verrous maintenus par un lot en cours d'exécutionFinding all locks that a running batch is holding

L’exemple suivant interroge sys.dm_exec_requests pour rechercher le lot vous intéresse et copier son transaction_id à partir de la sortie.The following example queries sys.dm_exec_requests to find the interesting batch and copy its transaction_id from the output.

SELECT * FROM sys.dm_exec_requests;  
GO  

Ensuite, pour rechercher des informations sur les verrous, utilisez copié transaction_id avec la fonction système sys.dm_tran_locks.Then, to find lock information, use the copied transaction_id with the system function sys.dm_tran_locks.

SELECT * FROM sys.dm_tran_locks   
WHERE request_owner_type = N'TRANSACTION'   
    AND request_owner_id = < copied transaction_id >;  
GO  

C.C. Recherche de toutes les demandes bloquées actuellementFinding all currently blocked requests

L’exemple suivant interroge sys.dm_exec_requests pour trouver des informations sur les demandes bloquées.The following example queries sys.dm_exec_requests to find information about blocked requests.

SELECT session_id ,status ,blocking_session_id  
    ,wait_type ,wait_time ,wait_resource   
    ,transaction_id   
FROM sys.dm_exec_requests   
WHERE status = N'suspended';  
GO  

Voir aussiSee Also

Fonctions et vues de gestion dynamique (Transact-SQL) Dynamic Management Views and Functions (Transact-SQL)
Les fonctions et vues de gestion dynamique ( liées à l’exécution Transact-SQL ) Execution Related Dynamic Management Views and Functions (Transact-SQL)
Sys.dm_os_memory_clerks ( Transact-SQL ) sys.dm_os_memory_clerks (Transact-SQL)
sys.dm_os_sys_info (Transact-SQL) sys.dm_os_sys_info (Transact-SQL)
Sys.dm_exec_query_memory_grants ( Transact-SQL ) sys.dm_exec_query_memory_grants (Transact-SQL)
Sys.dm_exec_query_plan ( Transact-SQL ) sys.dm_exec_query_plan (Transact-SQL)
Sys.dm_exec_sql_text ( Transact-SQL )sys.dm_exec_sql_text (Transact-SQL)