sys.dm_exec_requests (Transact-SQL)

Retourne des informations sur chaque demande qui s'exécute dans SQL Server.

[!REMARQUE]

Pour exécuter du code externe à SQL 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. Pour ce faire, un processus de travail passe en mode préemptif. Les valeurs temporelles retournées par cette vue de gestion dynamique n'incluent pas le temps passé en mode préemptif.

Nom de colonne

Type de données

Description

session_id

smallint

ID de la session à laquelle cette demande est liée. Cette colonne n'accepte pas la valeur NULL.

request_id

int

ID de la demande. Unique dans le contexte de la session. Cette colonne n'accepte pas la valeur NULL.

start_time

datetime

Horodatage lors la réception de la demande. N'accepte pas la valeur NULL.

status

nvarchar(30)

Statut de la demande. Valeurs possibles :

  • Arrière-plan

  • Exécution en cours

  • Exécutable

  • Veille

  • Suspendu

Cette colonne n'accepte pas la valeur NULL.

command

nvarchar(16)

Identifie le type de commande en cours de traitement. Les types de commandes courants comprennent notamment :

  • SELECT

  • INSERT

  • UPDATE

  • DELETE

  • BACKUP LOG

  • BACKUP DB

  • DBCC

  • WAITFOR

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. Des processus système internes définissent la commande en fonction du type de tâche à exécuter. Il peut s'agir des tâches suivantes :

  • LOCK MONITOR

  • CHECKPOINTLAZY

  • WRITER

Cette colonne n'accepte pas la valeur NULL.

sql_handle

varbinary(64)

Table de hachage du texte SQL de la demande. N'accepte pas la valeur NULL.

statement_start_offset

int

Nombre de caractères dans le lot ou la procédure stockée en cours d'exécution où les instructions en cours d'exécution commencent. 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. Accepte la valeur NULL.

statement_end_offset

int

Nombre de caractères dans le lot ou la procédure stockée en cours d'exécution où les instructions en cours d'exécution se terminent. 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. Accepte la valeur NULL.

plan_handle

varbinary(64)

Table de hachage du plan pour l'exécution SQL. Accepte la valeur NULL.

database_id

smallint

ID de la base de données dans laquelle la requête s'exécute. N'accepte pas la valeur NULL.

user_id

int

ID de l'utilisateur qui a envoyé la demande. N'accepte pas la valeur NULL.

connection_id

uniqueidentifier

ID de la connexion à laquelle la demande est parvenue. Accepte la valeur NULL.

blocking_session_id

smallint

ID de la session qui bloque la demande. Si cette colonne a la valeur 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).

-2 = La ressource qui bloque la demande appartient à une transaction distribuée orpheline.

-3 = La ressource qui bloque la demande appartient à une transaction de récupération différée.

-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.

wait_type

nvarchar(60)

Si la demande est actuellement bloquée, cette colonne retourne le type d'attente. Accepte la valeur NULL.

wait_time

int

Si la demande est actuellement bloquée, cette colonne retourne la durée de l'attente, en millisecondes. N'accepte pas la valeur NULL.

last_wait_type

nvarchar(60)

Si la demande a été bloquée précédemment, cette colonne indique le type de la dernière attente. Cette colonne n'accepte pas la valeur NULL.

wait_resource

nvarchar(256)

Si la demande est actuellement bloquée, cette colonne retourne la ressource attendue par la demande. N'accepte pas la valeur NULL.

open_transaction_count

int

Nombre de transactions ouvertes pour cette demande. Cette colonne n'accepte pas la valeur NULL.

open_resultset_count

int

Nombre de jeux de résultats ouverts pour cette demande. Cette colonne n'accepte pas la valeur NULL.

transaction_id

bigint

ID de la transaction dans laquelle cette demande s'exécute. N'accepte pas la valeur NULL.

context_info

varbinary(128)

Valeur CONTEXT_INFO de la session. Accepte la valeur NULL.

percent_complete

real

Le pourcentage de travail terminé pour les commandes suivantes :

  • ALTER INDEX REORGANIZE

  • Option AUTO_SHRINK avec ALTER DATABASE

  • BACKUP DATABASE

  • CREATE INDEX

  • DBCC CHECKDB

  • DBCC CHECKFILEGROUP

  • DBCC CHECKTABLE

  • DBCC INDEXDEFRAG

  • DBCC SHRINKDATABASE

  • DBCC SHRINKFILE

  • KILL (Transact-SQL)

  • RESTORE DATABASE,

  • UPDATE STATISTICS.

N'accepte pas la valeur NULL.

estimated_completion_time

bigint

Interne uniquement. Cette colonne n'accepte pas la valeur NULL.

cpu_time

int

Quantité de temps UC (en millisecondes) utilisé par la demande. Cette colonne n'accepte pas la valeur NULL.

total_elapsed_time

int

Temps total écoulé en millisecondes depuis l'arrivée de la demande. Cette colonne n'accepte pas la valeur NULL.

scheduler_id

int

ID du planificateur qui planifie cette demande. N'accepte pas la valeur NULL.

task_address

varbinary(8)

Adresse mémoire de la tâche associée à la demande. Accepte la valeur NULL.

reads

bigint

Nombre de lectures effectuées par la demande. Cette colonne n'accepte pas la valeur NULL.

writes

bigint

Nombre d'écritures effectuées par la demande. Cette colonne n'accepte pas la valeur NULL.

logical_reads

bigint

Nombre de lectures logiques effectuées par la demande. Cette colonne n'accepte pas la valeur NULL.

text_size

int

Valeur du paramètre TEXTSIZE pour la demande. Cette colonne n'accepte pas la valeur NULL.

language

nvarchar(128)

Valeur du paramètre de langue pour la demande. Cette colonne accepte la valeur NULL.

date_format

nvarchar(3)

Valeur du paramètre DATEFORMAT pour la demande. Cette colonne accepte la valeur NULL.

date_first

smallint

Valeur du paramètre DATEFIRST pour la demande. Cette colonne n'accepte pas la valeur NULL.

quoted_identifier

bit

1 = QUOTED_IDENTIFIER est activé (ON) pour la demande. Sinon, la valeur est 0.

Cette colonne n'accepte pas la valeur NULL.

arithabort

bit

1 = ARITHABORT est activé (ON) pour la demande. Sinon, la valeur est 0.

Cette colonne n'accepte pas la valeur NULL.

ansi_null_dflt_on

bit

1 = ANSI_NULL_DFLT_ON est activé (ON) pour la demande. Sinon, la valeur est 0.

Cette colonne n'accepte pas la valeur NULL.

ansi_defaults

bit

1 = ANSI_DEFAULTS est activé (ON) pour la demande. Sinon, la valeur est 0.

Cette colonne n'accepte pas la valeur NULL.

ansi_warnings

bit

1 = ANSI_WARNINGS est activé (ON) pour la demande. Sinon, la valeur est 0.

Cette colonne n'accepte pas la valeur NULL.

ansi_padding

bit

1 = ANSI_PADDING est activé (ON) pour la demande.

Sinon, la valeur est 0.

Cette colonne n'accepte pas la valeur NULL.

ansi_nulls

bit

1 = ANSI_NULLS est activé (ON) pour la demande. Sinon, la valeur est 0.

Cette colonne n'accepte pas la valeur NULL.

concat_null_yields_null

bit

1 = CONCAT_NULL_YIELDS_NULL est activé (ON) pour la demande. Sinon, la valeur est 0.

Cette colonne n'accepte pas la valeur NULL.

transaction_isolation_level

smallint

Niveau d'isolation avec lequel la transaction pour cette demande est créée. N'accepte pas la valeur NULL.

lock_timeout

int

Délai d'attente de verrou externe pour la demande, en millisecondes. Cette colonne n'accepte pas la valeur NULL.

deadlock_priority

int

Paramètre DEADLOCK_PRIORITY de la demande. Cette colonne n'accepte pas la valeur NULL.

row_count

bigint

Nombre de lignes retournées au client par cette demande. Cette colonne n'accepte pas la valeur NULL.

prev_error

int

Dernière erreur générée pendant l'exécution de la demande. Cette colonne n'accepte pas la valeur NULL.

nest_level

int

Niveau d'imbrication actuel du code en cours d'exécution sur la demande. N'accepte pas la valeur NULL.

granted_query_memory

int

Nombre de pages allouées à l'exécution d'une requête dans la demande. Cette colonne n'accepte pas la valeur NULL.

executing_managed_code

bit

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. 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-SQL à partir du CLR. N'accepte pas la valeur NULL.

group_id

int

ID du groupe de charge de travail auquel cette requête appartient. Cette colonne n'accepte pas la valeur NULL.

query_hash

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. 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. Pour plus d'informations, consultez Recherche et paramétrage de requêtes semblables à l'aide de requête et de hachages de plan de requête.

query_plan_hash

binary(8)

La 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. 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. Pour plus d'informations, consultez Recherche et paramétrage de requêtes semblables à l'aide de requête et de hachages de plan de requête.

Autorisations

L'autorisation VIEW SERVER STATE est nécessaire sur le serveur.

[!REMARQUE]

Si l'utilisateur bénéficie de l'autorisation VIEW SERVER STATE sur le serveur, il pourra voir toutes les sessions en cours d'exécution de l'instance de SQL Server ; sinon, il ne verra que la session active.