sys.dm_os_wait_stats

Mis à jour : 14 avril 2006

Retourne des informations sur les attentes subies par les threads qui ont été exécutés. Vous pouvez utiliser cette vue agrégée pour diagnostiquer les problèmes de performance liés à SQL Server, ainsi qu'à des requêtes et des lots spécifiques.

Nom de colonne Type de données Description

wait_type

nvarchar(60)

Nom du type d'attente.

waiting_tasks_count

bigint

Nombre d'attentes sur ce type d'attente. Ce compteur est incrémenté au début de chaque attente.

wait_time_ms

bigint

Temps d'attente total en millisecondes pour ce type d'attente. Ce temps comprend signal_wait_time_ms.

max_wait_time_ms

bigint

Temps d'attente maximal sur ce type d'attente.

signal_wait_time_ms

bigint

Différence entre le moment où le thread qui attend a été signalé et le moment où il a commencé à s'exécuter.

Autorisations

Nécessite l'autorisation VIEW SERVER STATE sur le serveur.

Notes

Types d'attentes

  • Resource waits
    Les attentes de ressource se produisent lorsque des demandes de travail accèdent à une ressource qui n'est pas disponible parce qu'elle est en cours d'utilisation par un autre travail ou qu'elle n'est pas encore disponible. Ces attentes sont par exemple des attentes de verrous, de verrous internes, de réseau et d'E/S de disque. Les attentes de verrous et de verrous internes sont des attentes sur des objets de synchronisation.
  • Queue waits
    Les attentes de file d'attente se produisent lorsqu'un thread de travail est inactif, en attente d'une affectation de travail. Ces attentes se produisent le plus souvent avec des tâches système en arrière-plan, telles que la surveillance des blocages et le nettoyage des enregistrements supprimés. Ces tâches attendent que les demandes de travail soient placées dans une file d'attente. Les attentes de file d'attente peuvent aussi devenir actives même si aucun nouveau paquet n'a été placé dans la file d'attente.
  • External waits
    Les attentes externes se produisent lorsqu'un thread de travail SQL Server attend un événement externe, par exemple un appel de procédure stockée étendue ou une requête de serveur lié, pour se terminer. Lorsque vous diagnostiquez des problèmes de blocage, souvenez-vous que les attentes externes n'impliquent pas forcément que le thread de travail est inactif, parce qu'il est peut être en train d'exécuter du code externe.

sys.dm_os_wait_stats affiche l'heure correspondant aux attentes terminées. Cette vue de gestion dynamique n'affiche pas les attentes actuelles.

Un thread de travail SQL Server n'est pas considéré comme étant en train d'attendre si l'une de ces conditions est vraie :

  • Une ressource devient disponible.
  • Une file d'attente n'est pas vide.
  • Un processus externe se termine.

Bien que le thread ne soit plus en train d'attendre, il n'a pas à redémarrer immédiatement. En effet, ce type de thread est d'abord placé dans la file d'attente des travaux pouvant s'exécuter et doit attendre qu'un quantum s'exécute sur le planificateur.

Dans SQL Server 2005 les compteurs des temps d'attente sont des valeurs bigint et, par conséquent, ne sont pas sujets à la substitution de compteur avec leurs équivalents des versions précédentes de SQL Server.

Des types spécifiques de temps d'attente pendant l'exécution des requêtes peuvent indiquer des goulots d'étranglement ou des points de blocage dans la requête. De la même façon, des temps d'attente élevés, ou des nombres d'attente à l'échelle du serveur peuvent indiquer des goulots d'étranglement ou des zones réactives en interaction avec l'instance du serveur. Par exemple, des attentes de verrou indiquent une contention de données par les requêtes ; des attentes de verrou interne d'E/S de page indiquent des temps de réponse E/S lents ; des attentes de mise à jour de verrous internes de page indiquent une mise en page de fichier incorrecte.

Le contenu de cette vue de gestion dynamique peut être réinitialisé en exécutant la commande suivante :

DBCC SQLPERF ('sys.dm_os_wait_stats', CLEAR);
GO

Cette commande remet tous les compteurs à 0.

ms179984.note(fr-fr,SQL.90).gifRemarque :
Ces statistiques ne sont pas préservées d'un redémarrage de SQL Server à l'autre et toutes les données s'accumulent depuis la dernière réinitialisation des statistiques ou le dernier démarrage du serveur.

Le tableau suivant récapitule les types d'attente que rencontrent les tâches.

Type d’attente Description

ASYNC_DISKPOOL_LOCK

Se produit lors d'une tentative de synchronisation de threads parallèles qui effectuent des tâches telles que la création ou l'initialisation d'un fichier.

ASYNC_IO_COMPLETION

Se produit lorsqu'une tâche attend la fin d'E/S.

ASYNC_NETWORK_IO

Se produit sur des écritures réseau lorsque la tâche est bloquée derrière le réseau. Vérifiez que le client traite les données du serveur.

BACKUP

Se produit lorsqu'une tâche est bloquée dans un traitement de sauvegarde.

BACKUP_CLIENTLOCK

À usage interne uniquement.

BACKUP_OPERATOR

Se produit lorsqu'une tâche attend qu'une bande monte. Pour voir l'état de la bande, interrogez sys.dm_io_backup_tapes. S'il n'y a pas d'opération de montage en cours, ce type d'attente peut indiquer un problème matériel au niveau du lecteur de bande.

BACKUPBUFFER

Se produit lorsqu'une tâche de sauvegarde attend des données ou une mémoire tampon pour y stocker les données. Ce type d'attente n'est pas typique, sauf lorsqu'une tâche attend qu'une bande monte.

BACKUPIO

Se produit lorsqu'une tâche de sauvegarde attend des données ou une mémoire tampon pour y stocker les données. Ce type d'attente n'est pas typique, sauf lorsqu'une tâche attend qu'une bande monte.

BACKUPTHREAD

Se produit lorsqu'une tâche attend la fin d'une tâche de sauvegarde. Les temps d'attente peuvent être longs, de plusieurs minutes à plusieurs heures. Si la tâche concernée est un processus d'E/S, ce type n'indique pas de problème.

BAD_PAGE_PROCESS

Se produit lorsque le journal de pages suspectes en arrière-plan tente d'éviter une exécution plus que toutes les cinq secondes. Un nombre excessif de pages suspectes entraîne une exécution fréquente du journal.

BROKER_CONNECTION_RECEIVE_TASK

Se produit lorsque vous attendez l'autorisation de recevoir un message sur un point de terminaison de connexion. L'accès au point de terminaison accordé est sérialisé.

BROKER_ENDPOINT_STATE_MUTEX

Se produit en cas de difficulté pour accéder à l'état d'un point de terminaison de connexion de Service Broker . L'accès à l'état pour procéder à des modifications est sérialisé.

BROKER_EVENTHANDLER

Se produit lorsqu'une tâche attend dans le gestionnaire d'événements principal de Service Broker . Ce doit être très bref.

BROKER_INIT

Se produit lors de l'initialisation de Service Broker dans chaque base de données active. Cela ne doit pas arriver souvent.

BROKER_MASTERSTART

Se produit lorsqu'une tâche attend le début du gestionnaire d'événements principal de Service Broker . Ce doit être très bref.

BROKER_RECEIVE_WAITFOR

Se produit lorsque RECEIVE WAITFOR attend. Typique si aucun message n'est prêt à être reçu.

BROKER_REGISTERALLENDPOINTS

Se produit lors de l'initialisation d'un point de terminaison de connexion de Service Broker . Ce doit être très bref.

BROKER_SHUTDOWN

Se produit lorsqu'il y a un arrêt programmé de Service Broker . Ce doit être très bref, voire inexistant.

BROKER_TRANSMITTER

Se produit lorsque l'émetteur Service Broker est en attente d'un travail.

BUILTIN_HASHKEY_MUTEX

Peut se produire après le démarrage d'une instance, pendant l'initialisation des structures de données internes. Ne se répètera plus lorsque les structures de données auront été initialisées.

CHECKPOINT_QUEUE

Se produit lorsque la tâche de point de vérification attend la demande de point de vérification suivante.

CHKPT

Se produit au démarrage du serveur pour signaler au thread du point de contrôle qu'il peut démarrer.

CLR_AUTO_EVENT

Se produit lorsqu'une tâche est en train d'exécuter du CLR (Common Language Runtime) et qu'elle attend le début d'un événement automatique particulier.

CLR_CRST

Se produit lorsqu'une tâche est en train d'exécuter du CLR et qu'elle attend avant de passer à une phase essentielle qui est actuellement utilisée par une autre tâche.

CLR_JOIN

Se produit lorsqu'une tâche est en train d'exécuter du CLR et qu'elle attend la fin d'une autre tâche. Cet état d'attente se produit lorsqu'il y a une jointure entre des tâches.

CLR_MANUAL_EVENT

Se produit lorsqu'une tâche est en train d'exécuter du CLR et qu'elle attend le début d'un événement manuel particulier.

CLR_MONITOR

Se produit lorsqu'une tâche est en train d'exécuter du CLR et qu'elle attend d'avoir obtenu un verrou sur le moniteur.

CLR_RWLOCK_READER

Se produit lorsqu'une tâche est en train d'exécuter du CLR et qu'elle attend un verrou de lecteur.

CLR_RWLOCK_WRITER

Se produit lorsqu'une tâche est en train d'exécuter du CLR et qu'elle attend un verrou d'écriture.

CLR_SEMAPHORE

Se produit lorsqu'une tâche est en train d'exécuter du CLR et qu'elle attend un sémaphore.

CLR_TASK_START

Se produit pendant l'attente du démarrage d'une tâche CLR.

CMEMTHREAD

Se produit lorsqu'une tâche s'occupe d'un objet mémoire thread-safe. Le temps d'attente peut augmenter en cas de difficulté liée au fait que plusieurs tâches essaient d'allouer de la mémoire à partir du même objet mémoire.

CURSOR

À usage interne uniquement.

CURSOR_ASYNC

À usage interne uniquement.

CXPACKET

Se produit lors d'une tentative de synchronisation de l'itérateur d'échange du processeur de requêtes. Vous pouvez réduire le degré de parallélisme si la contention devient un problème sur ce type d'attente.

DBMIRROR_DBM_EVENT

À usage interne uniquement.

DBMIRROR_DBM_MUTEX

À usage interne uniquement.

DBMIRROR_EVENTS_QUEUE

Se produit lorsque la mise en miroir de base de données attend le traitement des événements.

DBMIRROR_SEND

Se produit lorsqu'une tâche attend que le journal des communications au niveau de la couche réseau soit vidé pour pouvoir envoyer des messages. Indique que la couche des communications est proche de la saturation et que cela affecte le débit des données pour la mise en miroir de bases de données.

DBMIRROR_WORKER_QUEUE

Indique que la tâche de travail de mise en miroir de base de données attend plus de travail.

DBMIRRORING_CMD

Se produit lorsqu'une tâche attend que les enregistrements de journal soient vidés sur le disque. Cet état d'attente dure généralement assez longtemps.

DBTABLE

À usage interne uniquement.

DEADLOCK_ENUM_MUTEX

Se produit lorsque le moniteur de blocages et sys.dm_os_waiting_tasks essaient de vérifier que SQL Server n'effectue pas plusieurs recherches de blocage en même temps.

DEADLOCK_TASK_SEARCH

Une durée d'attente importante pour cette ressource indique que le serveur exécute des requêtes par-dessus sys.dm_os_waiting_tasks, et ces dernières empêchent l'analyseur de blocages d'exécuter une recherche de blocage. Ce type d'attente est utilisé uniquement par l'analyseur de blocages. Les requêtes exécutées par-dessus sys.dm_os_waiting_tasks utilisent DEADLOCK_ENUM_MUTEX.

DEBUG

Se produit lors du débogage CLR et Transact-SQL pour la synchronisation interne.

DISABLE_VERSIONING

Se produit lorsque SQL Server sonde le gestionnaire de transactions de versions pour voir si le cachet temporel de la plus ancienne transaction active est postérieur au cachet temporel indiquant le début de changement d'état. Si c'est le cas, toutes les transactions de capture instantanée qui avaient démarré avant l'exécution de l'instruction ALTER DATABASE sont terminées. Cet état d'attente est utilisé lorsque SQL Server désactive la gestion des versions à l'aide de l'instruction ALTER DATABASE.

DISKIO_SUSPEND

Se produit lorsqu'une tâche attend pour accéder à un fichier lorsqu'une sauvegarde externe est en cours. Ce type d'attente est signalé pour chaque processus utilisateur en attente. Un nombre supérieur à cinq par processus utilisateur peut indiquer que la sauvegarde externe prend trop de temps.

DLL_LOADING_MUTEX

Se produit une fois pendant l'attente du chargement de la DLL de l'analyseur XML.

DROPTEMP

Se produit entre les tentatives de suppression d'un objet temporaire si la tentative précédente a échoué. La durée d'attente augmente de manière exponentielle au fur et à mesure que les différentes tentatives de suppression échouent.

DTC

Se produit lorsqu'une tâche s'occupe d'un événement qui est utilisé pour gérer une transition d'état. Cet état contrôle le moment où a lieu la récupération des transactions MS DTC (Distributed Transaction Coordinator) de Microsoft une fois que SQL Server a reçu la notification selon laquelle le service MS DTC n'est plus disponible.

Cet état décrit aussi une tâche qui attend lorsqu'une validation d'une transaction MS DTC est lancée par SQL Server et que SQL Server attend la fin de cette validation MS DTC.

DTC_ABORT_REQUEST

Se produit dans une session de travail MS DTC lorsque la session attend de prendre possession d'une transaction MS DTC. Une fois que MS DTC est propriétaire de la transaction, la session peut la restaurer. En général, la session attendra une autre session qui utilise la transaction.

DTC_RESOLVE

Se produit lorsqu'une tâche de récupération attend la base de données master dans une transaction entre bases de données, afin de pouvoir interroger le résultat de la transaction.

DTC_STATE

Se produit lorsqu'une tâche s'occupe d'un événement qui protège les modifications effectuées sur l'objet d'état global MS DTC interne. Cet état doit être maintenu pendant des périodes très courtes.

DTC_TMDOWN_REQUEST

Se produit dans une session de travail MS DTC lorsque SQL Server reçoit une notification selon laquelle le service MS DTC n'est pas disponible. Tout d'abord, le thread de travail attend que le processus de récupération MS DTC commence. Ensuite, il attend d'avoir obtenu le résultat de la transaction distribuée sur laquelle il travaille. Cela peut continuer jusqu'à ce que la connexion avec le service MS DTC ait été rétablie.

DTC_WAITFOR_OUTCOME

Se produit lorsque des tâches de récupération attendent que MS DTC s'active pour permettre la résolution des transactions préparées.

DUMP_LOG_COORDINATOR

Se produit lorsqu'une tâche principale attend qu'une tâche secondaire ait produit des données. En principe cet état n'arrive pas. Une longue attente indique un blocage inattendu. Il faut examiner la tâche secondaire.

EC

À usage interne uniquement.

EE_PMOLOCK

Se produit durant la synchronisation de certains types d'allocations de mémoire durant l'exécution d'une instruction.

EE_SPECPROC_MAP_INIT

Se produit durant la synchronisation de la création de la table de hachage de procédure interne. Cette attente ne peut se produire que lors de l'accès initial à la table de hachage après le démarrage de l'instance SQL Server 2005.

ENABLE_VERSIONING

Se produit lorsque SQL Server attend que toutes les transactions de mise à jour de la base de données soient terminées avant de déclarer que la base de données est prête à passer à l'état autorisé d'isolement de capture instantanée. Cet état est utilisé lorsque SQL Server active l'isolement de capture instantanée à l'aide de l'instruction ALTER DATABASE.

ERROR_REPORTING_MANAGER

Se produit durant la synchronisation de plusieurs initialisations simultanées de journaux d'erreurs.

EXCHANGE

Se produit lors de la synchronisation dans l'itérateur d'échange du processeur de requêtes au cours de requêtes parallèles.

EXECSYNC

Se produit au cours de requêtes parallèles, lors de la synchronisation dans le processeur de requêtes, dans des zones qui ne sont pas liées à l'itérateur d'échange. Ces zones sont, par exemple, des images bitmap, des objets binaires volumineux et l'itérateur de spouleurs. Les objets binaires volumineux peuvent souvent utiliser cet état d'attente.

FAILPOINT

À usage interne uniquement.

FCB_REPLICA_READ

Se produit lorsque les lectures du fichier fragmenté d'une capture instantanée (ou d'une capture instantanée temporaire créée par DBCC) sont synchronisées.

FCB_REPLICA_WRITE

Se produit lorsque des émissions ou extractions d'une page dans un fichier fragmenté de capture instantanée (ou une capture instantanée temporaire créée par DBCC) sont synchronisées.

FT_RESTART_CRAWL

Se produit lorsqu'une analyse de texte intégral doit redémarrer à partir du dernier point de référence connu et fiable pour une récupération faisant suite à une panne transitoire. Grâce à cette attente, les tâches travaillant actuellement sur ce remplissage peuvent se terminer ou quitter l'étape en cours.

FT_RESUME_CRAWL

À usage interne uniquement.

FULLTEXT GATHERER

Se produit durant la synchronisation d'opérations de texte intégral.

HTTP_ENDPOINT_COLLCREATE

À usage interne uniquement.

HTTP_ENUMERATION

Se produit au démarrage pour énumérer les points de terminaison HTTP pour lancer HTTP.

HTTP_START

Se produit lorsqu'une connexion attend que le protocole HTTP termine l'initialisation.

IMP_IMPORT_MUTEX

À usage interne uniquement.

IMPPROV_IOWAIT

Se produit lorsque SQL Server attend la fin d'une E/S de chargement en bloc.

INDEX_USAGE_STATS_MUTEX

À usage interne uniquement.

IO_AUDIT_MUTEX

Se produit durant la synchronisation des tampons d'événements de trace.

IO_COMPLETION

Se produit durant l'attente de l'exécution des opérations d'E/S. Ce type d'attente représente en général des entrées/sorties de page qui ne sont pas des données. Les attentes d'exécution des entrées/sorties de pages de données apparaissent sous la forme d'attentes PAGEIOLATCH_*.

KSOURCE_WAKEUP

Utilisé par la tâche de contrôle de service pour les demandes émanant du Gestionnaire de contrôle des services. De longues attentes sont prévisibles, et elles n'indiquent pas la présence d'un problème.

KTM_ENLISTMENT

À usage interne uniquement.

KTM_RECOVERY_MANAGER

À usage interne uniquement.

KTM_RECOVERY_RESOLUTION

À usage interne uniquement.

LATCH_DT

Se produit pendant l'attente d'un verrou en mode de destruction. Cela n'inclut pas les verrous internes de tampons ni les verrous internes de marque de transaction. La liste des attentes LATCH_* est disponible dans la section sys.dm_os_latch_stats. Notez que sys.dm_os_latch_stats regroupe les attentes LATCH_NL, LATCH_SH, LATCH_UP, LATCH_EX et LATCH_DT ensemble.

LATCH_EX

Se produit pendant l'attente d'un verrou exclusif. Cela n'inclut pas les verrous internes de tampons ni les verrous internes de marque de transaction. La liste des attentes LATCH_* est disponible dans la section sys.dm_os_latch_stats. Notez que sys.dm_os_latch_stats regroupe les attentes LATCH_NL, LATCH_SH, LATCH_UP, LATCH_EX et LATCH_DT ensemble.

LATCH_KP

Se produit pendant l'attente d'un verrou de maintien. Cela n'inclut pas les verrous internes de tampons ni les verrous internes de marque de transaction. La liste des attentes LATCH_* est disponible dans la section sys.dm_os_latch_stats. Notez que sys.dm_os_latch_stats regroupe les attentes LATCH_NL, LATCH_SH, LATCH_UP, LATCH_EX et LATCH_DT ensemble.

LATCH_NL

À usage interne uniquement.

LATCH_SH

Se produit pendant l'attente d'un verrou de partage. Cela n'inclut pas les verrous internes de tampons ni les verrous internes de marque de transaction. La liste des attentes LATCH_* est disponible dans la section sys.dm_os_latch_stats. Notez que sys.dm_os_latch_stats regroupe les attentes LATCH_NL, LATCH_SH, LATCH_UP, LATCH_EX et LATCH_DT ensemble.

LATCH_UP

Se produit pendant l'attente d'un verrou de mise à jour. Cela n'inclut pas les verrous internes de tampons ni les verrous internes de marque de transaction. La liste des attentes LATCH_* est disponible dans la section sys.dm_os_latch_stats. Notez que sys.dm_os_latch_stats regroupe les attentes LATCH_NL, LATCH_SH, LATCH_UP, LATCH_EX et LATCH_DT ensemble.

LAZYWRITER_SLEEP

Se produit lorsque des tâches d'écriture différée sont suspendues. Il s'agit d'une mesure de la durée consacrée aux tâches en arrière-plan qui attendent. Ne considérez pas cet état lorsque vous cherchez des blocages d'utilisateur.

LCK_M_BU

Se produit lorsqu'une tâche attend pour acquérir un verrou de mise à jour en bloc. Pour obtenir un tableau décrivant la compatibilité des verrous, consultez sys.dm_tran_locks.

LCK_M_IS

Se produit lorsqu'une tâche attend pour acquérir un verrou intentionnel partagé. Pour obtenir un tableau décrivant la compatibilité des verrous, consultez sys.dm_tran_locks.

LCK_M_IU

Se produit lorsqu'une tâche attend pour acquérir un verrou intentionnel de mise à jour. Pour obtenir un tableau décrivant la compatibilité des verrous, consultez sys.dm_tran_locks.

LCK_M_IX

Se produit lorsqu'une tâche attend pour acquérir un verrou intentionnel exclusif. Pour obtenir un tableau décrivant la compatibilité des verrous, consultez sys.dm_tran_locks.

LCK_M_RIn_NL

Se produit lorsqu'une tâche attend pour acquérir un verrou NULL sur la valeur de clé actuelle, et un verrou de groupes d'insertions entre la clé actuelle et la clé précédente. Un verrou NULL sur la clé est un verrou de libération instantanée. Pour obtenir un tableau décrivant la compatibilité des verrous, consultez sys.dm_tran_locks.

LCK_M_RIn_S

Se produit lorsqu'une tâche attend pour acquérir un verrou partagé sur la valeur de clé actuelle, et un verrou de groupes d'insertions entre la clé actuelle et la clé précédente. Pour obtenir un tableau décrivant la compatibilité des verrous, consultez sys.dm_tran_locks.

LCK_M_RIn_U

La tâche attend pour acquérir un verrou de mise à jour sur la valeur de clé actuelle, et un verrou de groupes d'insertions entre la clé actuelle et la clé précédente. Pour obtenir un tableau décrivant la compatibilité des verrous, consultez sys.dm_tran_locks.

LCK_M_RIn_X

Se produit lorsqu'une tâche attend pour acquérir un verrou exclusif sur la valeur de clé actuelle, et un verrou de groupes d'insertions entre la clé actuelle et la clé précédente. Pour obtenir un tableau décrivant la compatibilité des verrous, consultez sys.dm_tran_locks.

LCK_M_RS_S

Se produit lorsqu'une tâche attend pour acquérir un verrou partagé sur la valeur de clé actuelle, et un verrou de groupes partagés entre la clé actuelle et la clé précédente. Pour obtenir un tableau décrivant la compatibilité des verrous, consultez sys.dm_tran_locks.

LCK_M_RS_U

Se produit lorsqu'une tâche attend pour acquérir un verrou de mise à jour sur la valeur de clé actuelle, et un verrou de groupes de mises à jour entre la clé actuelle et la clé précédente. Pour obtenir un tableau décrivant la compatibilité des verrous, consultez sys.dm_tran_locks.

LCK_M_RX_S

Se produit lorsqu'une tâche attend pour acquérir un verrou partagé sur la valeur de clé actuelle, et un verrou de groupes exclusifs entre la clé actuelle et la clé précédente. Pour obtenir un tableau décrivant la compatibilité des verrous, consultez sys.dm_tran_locks.

LCK_M_RX_U

Se produit lorsqu'une tâche attend pour acquérir un verrou de mise à jour sur la valeur de clé actuelle, et un verrou de groupes exclusifs entre la clé actuelle et la clé précédente. Pour obtenir un tableau décrivant la compatibilité des verrous, consultez sys.dm_tran_locks.

LCK_M_RX_X

Se produit lorsqu'une tâche attend pour acquérir un verrou exclusif sur la valeur de clé actuelle, et un verrou de groupes exclusifs entre la clé actuelle et la clé précédente. Pour obtenir un tableau décrivant la compatibilité des verrous, consultez sys.dm_tran_locks.

LCK_M_S

Se produit lorsqu'une tâche attend pour acquérir un verrou partagé. Pour obtenir un tableau décrivant la compatibilité des verrous, consultez sys.dm_tran_locks.

LCK_M_SCH_M

Se produit lorsqu'une tâche attend pour acquérir un verrou de modification de schéma. Pour obtenir un tableau décrivant la compatibilité des verrous, consultez sys.dm_tran_locks.

LCK_M_SCH_S

Se produit lorsqu'une tâche attend pour acquérir un verrou de partage de schéma. Pour obtenir un tableau décrivant la compatibilité des verrous, consultez sys.dm_tran_locks.

LCK_M_SIU

Se produit lorsqu'une tâche attend pour acquérir un verrou intentionnel de mise à jour partagé. Pour obtenir un tableau décrivant la compatibilité des verrous, consultez sys.dm_tran_locks.

LCK_M_SIX

Se produit lorsqu'une tâche attend pour acquérir un verrou intentionnel exclusif partagé. Pour obtenir un tableau décrivant la compatibilité des verrous, consultez sys.dm_tran_locks.

LCK_M_U

Se produit lorsqu'une tâche attend pour acquérir un verrou de mise à jour. Pour obtenir un tableau décrivant la compatibilité des verrous, consultez sys.dm_tran_locks.

LCK_M_UIX

Se produit lorsqu'une tâche attend pour acquérir un verrou intentionnel exclusif de mise à jour. Pour obtenir un tableau décrivant la compatibilité des verrous, consultez sys.dm_tran_locks.

LCK_M_X

Se produit lorsqu'une tâche attend pour acquérir un verrou exclusif. Pour obtenir un tableau décrivant la compatibilité des verrous, consultez sys.dm_tran_locks.

LOGBUFFER

Se produit lorsqu'une tâche attend de l'espace dans le tampon de journal pour stocker un enregistrement de journal. Des valeurs élevées fréquentes peuvent indiquer que les unités de journaux ne parviennent pas à gérer la quantité d'entrées de journaux produites par le serveur.

LOGMGR

Se produit lorsqu'une tâche attend la fin des E/S de journal en cours avant d'arrêter le journal lors de la fermeture de la base de données.

LOGMGR_FLUSH

À usage interne uniquement.

LOGMGR_QUEUE

Se produit lorsque la tâche d'écriture du journal attend des demandes de travail.

LOGMGR_RESERVE_APPEND

Se produit lorsqu'une tâche attend de voir si la troncature du journal libère de l'espace pour lui permettre d'écrire un nouvel enregistrement dans le journal. Vous pouvez éventuellement augmenter la taille des fichiers journaux correspondant à la base de données concernée pour réduire cette attente.

LOWFAIL_MEMMGR_QUEUE

Se produit lorsque vous attendez que la mémoire soit disponible afin d'être utilisée.

MIRROR_SEND_MESSAGE

À usage interne uniquement.

MISCELLANEOUS

À usage interne uniquement.

MSQL_DQ

Se produit lorsqu'une tâche attend la fin d'une opération de requête distribuée. Permet de détecter d'éventuels blocages d'application MARS (Multiple Active Result Set). L'attente se termine à la fin de l'appel de requête distribuée.

MSQL_SYNC_PIPE

À usage interne uniquement.

MSQL_XACT_MGR_MUTEX

Se produit lorsqu'une tâche attend d'avoir obtenu la propriété du gestionnaire de transactions de la session pour effectuer une opération de transaction au niveau de la session.

MSQL_XACT_MUTEX

Se produit durant la synchronisation de l'utilisation de la transaction. Une demande doit d'abord obtenir l'exclusion mutuelle pour pouvoir utiliser la transaction.

MSQL_XP

Se produit lorsqu'une tâche attend la fin d'une procédure stockée étendue. SQL Server utilise cet état d'attente pour détecter d'éventuels blocages d'application MARS. L'attente se termine à la fin de l'appel de procédure stockée étendue.

MSSEARCH

Se produit durant des appels de recherche de texte intégral. Cette attente se termine lorsque l'opération de texte intégral prend fin. Ces informations n'indiquent pas des confits, mais plutôt la durée des opérations de texte intégral.

NET_WAITFOR_PACKET

Se produit lorsqu'une connexion attend un paquet réseau durant une lecture sur le réseau.

OLEDB

Se produit lorsque SQL Server appelle le fournisseur Microsoft OLE DB SQL Native Client. Cet type d'attente n'est pas utilisé pour la synchronisation. Par contre, il indique la durée des appels émis vers le fournisseur OLE DB.

ONDEMAND_TASK_QUEUE

Se produit lorsqu'une tâche en arrière-plan attend des demandes de tâches système à priorité élevée. De longues attentes indiquent qu'il n'existe aucune demande à priorité élevée à traiter, et elles ne révèlent pas l'existence d'un problème.

PAGEIOLATCH_DT

Se produit lorsqu'une tâche attend sur un verrou interne un tampon qui est une demande d'E/S. La demande de verrou interne est en mode de destruction. De longues attentes peuvent indiquer l'existence de problèmes au niveau du sous-système de disque.

PAGEIOLATCH_EX

Se produit lorsqu'une tâche attend sur un verrou interne un tampon qui est une demande d'E/S. La demande de verrou interne est en mode exclusif. De longues attentes peuvent indiquer l'existence de problèmes au niveau du sous-système de disque.

PAGEIOLATCH_KP

Se produit lorsqu'une tâche attend sur un verrou interne un tampon qui est une demande d'E/S. La demande de verrou interne est en mode de conservation. De longues attentes peuvent indiquer l'existence de problèmes au niveau du sous-système de disque.

PAGEIOLATCH_NL

À usage interne uniquement.

PAGEIOLATCH_SH

Se produit lorsqu'une tâche attend sur un verrou interne un tampon qui est une demande d'E/S. La demande de verrou interne est en mode partagé. De longues attentes peuvent indiquer l'existence de problèmes au niveau du sous-système de disque.

PAGEIOLATCH_UP

Se produit lorsqu'une tâche attend sur un verrou interne un tampon qui est une demande d'E/S. La demande de verrou interne est en mode de mise à jour. De longues attentes peuvent indiquer l'existence de problèmes au niveau du sous-système de disque.

PAGELATCH_DT

Se produit lorsqu'une tâche attend sur un verrou interne un tampon qui n'est pas une demande d'E/S. La demande de verrou interne est en mode de destruction.

PAGELATCH_EX

Se produit lorsqu'une tâche attend sur un verrou interne un tampon qui n'est pas une demande d'E/S. La demande de verrou interne est en mode exclusif.

PAGELATCH_KP

Se produit lorsqu'une tâche attend sur un verrou interne un tampon qui n'est pas une demande d'E/S. La demande de verrou interne est en mode de conservation.

PAGELATCH_NL

À usage interne uniquement.

PAGELATCH_SH

Se produit lorsqu'une tâche attend sur un verrou interne un tampon qui n'est pas une demande d'E/S. La demande de verrou interne est en mode partagé.

PAGELATCH_UP

Se produit lorsqu'une tâche attend sur un verrou interne un tampon qui n'est pas une demande d'E/S. La demande de verrou interne est en mode de mise à jour.

PARALLEL_BACKUP_QUEUE

Se produit lors de la sérialisation de la sortie générée par RESTORE HEADERONLY, RESTORE FILELISTONLY ou RESTORE LABELONLY.

PRINT_ROLLBACK_PROGRESS

S'utilise pour attendre que des processus utilisateur se terminent dans une base de données qui a subi un changement d'état suite à l'utilisation de la clause de terminaison ALTER DATABASE. Pour plus d'informations, consultez ALTER DATABASE (Transact-SQL).

QNMANAGER_ACQUIRE

À usage interne uniquement.

QPJOB_KILL

Indique qu'une mise à jour asynchrone des statistiques automatiques a été annulée par un appel à KILL alors que la mise à jour commençait. Le thread de terminaison est suspendu, en attendant qu'il commence à écouter les commandes KILL. Une valeur idéale est inférieure à une seconde.

QPJOB_WAITFOR_ABORT

Indique qu'une mise à jour asynchrone des statistiques automatiques a été annulée par un appel à KILL lors de son exécution. La mise à jour est maintenant terminée, mais elle est suspendue jusqu'à ce que la coordination du message de fin de thread soit achevée. Il s'agit d'un état ordinaire, mais rare, qui doit être très bref. Une valeur idéale est inférieure à une seconde.

QRY_MEM_GRANT_INFO_MUTEX

Se produit lorsque la gestion de la mémoire pour l'exécution des requêtes essaie de contrôler l'accès à la liste d'informations d'octroi statique. Cet état énumère les informations sur les demandes de mémoire actuellement accordées et en attente. Il s'agit d'un simple état de contrôle d'accès. Il ne devrait jamais y avoir de longue attente sur cet état. Si ce mutex n'est pas libéré, toutes les nouvelles requêtes d'utilisation de mémoire cesseront de répondre.

QUERY_EXECUTION_INDEX_SORT_EVENT_OPEN

Se produit dans certains cas lorsqu'une construction d'index hors connexion est exécutée en parallèle, et les différents threads de travail qui effectuent le tri synchronisent l'accès aux fichiers de tri.

QUERY_NOTIFICATION_MGR_MUTEX

Se produit durant la synchronisation de la file d'attente de nettoyage de la mémoire dans le gestionnaire de notification de requête.

QUERY_NOTIFICATION_SUBSCRIPTION_MUTEX

Se produit durant la synchronisation de l'état des transactions dans les notifications de requêtes.

QUERY_NOTIFICATION_TABLE_MGR_MUTEX

Se produit durant la synchronisation interne dans le gestionnaire de notification de requête.

QUERY_NOTIFICATION_UNITTEST_MUTEX

À usage interne uniquement.

QUERY_OPTIMIZER_PRINT_MUTEX

Se produit durant la synchronisation de la production de la sortie de diagnostics de l'optimiseur de requête. Ce type d'attente intervient si les paramètres de diagnostic ont été activés sous la direction du Support technique Microsoft.

QUERY_TRACEOUT

À usage interne uniquement.

RECOVER_CHANGEDB

Se produit durant la synchronisation de l'état de la base de données dans une base de données en mode Veille.

REPL_CACHE_ACCESS

Se produit durant la synchronisation sur un cache des articles de réplication. Lors de ces attentes, l'utilitaire de lecture du journal des réplications se bloque et les instructions de langage de définition de données (DDL - Data Definition Language) sur une table publiée sont bloquées.

REPL_SCHEMA_ACCESS

Se produit durant la synchronisation des informations de version du schéma de réplication. Cet état existe lorsque des instructions DDL sont exécutées sur l'objet répliqué et lorsque l'utilitaire de lecture du journal crée ou exploite le schéma avec version reposant sur une occurrence de DDL.

REPLICA_WRITES

Se produit lorsqu'une tâche attend la fin des écritures de page dans des captures instantanées de base de données ou des réplicas DBCC.

REQUEST_DISPENSER_PAUSE

Se produit lorsqu'une tâche attend la fin de toutes les E/S en suspens, afin que les E/S puissent être figées dans un fichier pour une sauvegarde des captures instantanées.

REQUEST_FOR_DEADLOCK_SEARCH

Se produit lorsque l'analyseur de blocages attend pour démarrer la recherche de blocage suivante. Cette attente est normale entre les détections de blocages, et une importante durée d'attente totale sur cette ressource n'indique pas la présence d'un problème.

RESOURCE_QUEUE

Se produit durant la synchronisation de diverses files d'attente de ressources internes.

RESOURCE_SEMAPHORE

Se produit lorsqu'une demande de mémoire de requête ne peut pas être accordée immédiatement en raison d'autres requêtes simultanées. Des temps d'attente élevés peuvent indiquer un trop grand nombre de requêtes simultanées ou des quantités de demande de mémoire trop importantes.

RESOURCE_SEMAPHORE_MUTEX

Se produit lorsqu'une requête attend que sa demande de réservation de thread soit exécutée. Se produit également lors de la synchronisation des demandes d'allocation de mémoire et de compilation de requête.

RESOURCE_SEMAPHORE_QUERY_COMPILE

Se produit lorsque le nombre de compilations de requêtes simultanées atteint une limite. Des temps d'attente élevés peuvent indiquer des compilations et des recompilations excessives, ou encore des plans ne pouvant pas être mis en cache.

RESOURCE_SEMAPHORE_SMALL_QUERY

Se produit lorsqu'une demande de mémoire émanant d'une petite requête ne peut pas être accordée immédiatement en raison d'autres requêtes simultanées. Le temps d'attente ne doit pas excéder quelques secondes, car le serveur transfère la demande au pool de mémoire de requête principal s'il ne parvient pas à accorder la mémoire demandée dans les secondes qui suivent. Des temps d'attente élevés peuvent indiquer un nombre excessif de petites requêtes simultanées alors que le pool de mémoire principal est bloqué par les requêtes en attente.

SEC_DROP_TEMP_KEY

Se produit après l'échec d'une tentative de suppression d'une clé de sécurité temporaire avant une nouvelle tentative.

SERVER_IDLE_CHECK

Se produit durant la synchronisation de l'état d'inactivité d'une instance SQL Server lorsqu'un moniteur de ressources tente de déclarer une instance SQL Server comme étant inactive ou sur le point de se réactiver.

SHUTDOWN

Se produit lorsqu'une instruction d'arrêt attend que les connexions actives soient coupées.

SLEEP_BPOOL_FLUSH

Se produit lorsqu'un point de vérification limite l'émission des nouvelles E/S afin de ne pas saturer le sous-système de disque.

SLEEP_DBSTARTUP

Se produit au démarrage de la base de données lors de l'attente de la récupération de toutes les bases de données.

SLEEP_DCOMSTARTUP

Se produit une fois au maximum durant le démarrage d'une instance SQL Server en attendant la fin de l'initialisation DCOM.

SLEEP_MSDBSTARTUP

Se produit lorsque SQL Trace attend la fin du démarrage de la base de données msdb.

SLEEP_SYSTEMTASK

Se produit lors du démarrage d'une tâche en arrière-plan pendant l'attente du démarrage de tempdb.

SLEEP_TASK

Se produit lorsqu'une tâche est en état de veille en attendant qu'un événement générique survienne.

SLEEP_TEMPDBSTARTUP

Se produit lorsqu'une tâche attend la fin du démarrage de la base tempdb.

SNI_CRITICAL_SECTION

Se produit durant la synchronisation interne au sein des composants réseau de SQL Server.

SNI_HTTP_ACCEPT

À usage interne uniquement.

SNI_HTTP_WAITFOR_0_DISCON

Se produit durant l'arrêt de SQL Server, pendant l'attente de la fermeture des connexions HTTP en suspens.

SOAP_READ

Se produit durant l'attente de l'exécution d'une lecture sur le réseau HTTP.

SOAP_WRITE

Se produit durant l'attente de l'exécution d'une écriture sur le réseau HTTP.

SOS_CALLBACK_REMOVAL

Se produit lors de la synchronisation sur une liste de rappels afin de supprimer un rappel. Ce compteur ne change pas à la fin de l'initialisation du serveur.

SOS_LOCALALLOCATORLIST

Se produit durant la synchronisation interne dans le gestionnaire de mémoire SQL Server.

SOS_OBJECT_STORE_DESTROY_MUTEX

Se produit durant la synchronisation interne dans les pools de mémoire lorsque des objets du pool sont détruits.

SOS_PROCESS_AFFINITY_MUTEX

Se produit durant la synchronisation de l'accès pour traiter les paramètres d'affinité.

SOS_RESERVEDMEMBLOCKLIST

Se produit durant la synchronisation interne dans le gestionnaire de mémoire SQL Server.

SOS_SCHEDULER_YIELD

Se produit lorsqu'une tâche abandonne volontairement le planificateur pour d'autres tâches à exécuter. Durant cette attente, la tâche attend le renouvellement de son quantum.

SOS_STACKSTORE_INIT_MUTEX

Se produit durant la synchronisation de l'initialisation de stockage interne.

SOS_SYNC_TASK_ENQUEUE_EVENT

Se produit lorsqu'une tâche est démarrée de manière synchrone. La plupart des tâches dans SQL Server sont démarrées de manière asynchrone ; c'est-à-dire que le contrôle est renvoyé à l'élément initial dès que la tâche a été placée dans la file d'attente de travail.

SOS_VIRTUALMEMORY_LOW

Se produit lorsqu'une allocation de mémoire attend qu'un gestionnaire de ressources libère de la mémoire virtuelle.

SOSHOST_EVENT

Se produit lorsqu'un composant hébergé, tel que CLR, attend sur un objet de synchronisation d'événement SQL Server 2005.

SOSHOST_INTERNAL

Se produit durant la synchronisation des rappels du gestionnaire de mémoire utilisés par des composants hébergés, tels que CLR.

SOSHOST_MUTEX

Se produit lorsqu'un composant hébergé, tel que CLR, attend sur un objet de synchronisation d'exclusion mutuelle (mutex) SQL Server 2005.

SOSHOST_RWLOCK

Se produit lorsqu'un composant hébergé, tel que CLR, attend sur un objet de synchronisation de lecture/écriture SQL Server 2005.

SOSHOST_SEMAPHORE

Se produit lorsqu'un composant hébergé, tel que CLR, attend sur un objet de synchronisation de sémaphore SQL Server 2005.

SOSHOST_SLEEP

Se produit lorsqu'une tâche hébergée est en veille en attendant qu'un événement générique survienne. Les tâches hébergées sont utilisées par les composants hébergés tels que CLR.

SOSHOST_TRACELOCK

Se produit durant la synchronisation de l'accès aux flux de trace.

SOSHOST_WAITFORDONE

Se produit lorsqu'un composant hébergé, tel que CLR, attend la fin d'une tâche.

SQLCLR_APPDOMAIN

Se produit lorsque CLR attend la fin du démarrage d'un domaine d'application.

SQLCLR_ASSEMBLY

Se produit durant l'attente de l'accès à la liste des assembly chargés dans le domaine d'application.

SQLCLR_DEADLOCK_DETECTION

Se produit lorsque CLR attend la fin d'une détection de blocage.

SQLCLR_QUANTUM_PUNISHMENT

Se produit lorsqu'une tâche CLR est accélérée car elle a dépassé son quantum d'exécution. Cette accélération est opérée afin de limiter l'incidence de cette tâche consommant une grande quantité de ressources sur les autres tâches.

SQLSORT_NORMMUTEX

Se produit durant la synchronisation interne, lors de l'initialisation des structures de tri internes.

SQLSORT_SORTMUTEX

Se produit durant la synchronisation interne, lors de l'initialisation des structures de tri internes.

SQLTRACE_BUFFER_FLUSH

Se produit lorsqu'une tâche attend qu'une tâche en arrière-plan vide les tampons de traçage sur le disque toutes les quatre secondes.

SQLTRACE_LOCK

Se produit durant la synchronisation des tampons de trace lors d'un suivi de fichier.

SQLTRACE_SHUTDOWN

Se produit pendant que l'arrêt de la trace attend la fin des événements de trace en suspens.

SQLTRACE_WAIT_ENTRIES

Se produit lorsqu'une file d'attente d'événements SQL Trace attend l'arrivée de paquets dans la file d'attente.

SRVPROC_SHUTDOWN

Se produit lorsque le processus d'arrêt attend la libération des ressources internes pour que l'arrêt s'effectue correctement.

TEMPOBJ

Se produit lorsque des suppressions d'objets temporaires sont synchronisées. Cette attente est rare ; elle survient uniquement si une tâche a demandé un accès exclusif pour les suppressions de tables temp.

THREADPOOL

Se produit lorsqu'une tâche attend un thread de travail pour l'exécution. Ceci peut indiquer qu'un paramètre de thread de travail maximal est trop bas ou que les exécutions par lots sont exceptionnellement longues, ce qui réduit le nombre de threads de travail disponibles pour répondre aux autres lots.

TRACEWRITE

Se produit lorsque le fournisseur de traces d'ensemble de lignes SQL Trace attend le traitement d'un tampon libre ou d'un tampon avec des événements.

TRAN_MARKLATCH_DT

Se produit lors de l'attente d'un verrou en mode de destruction sur un verrou interne de marque de transaction. Les verrous internes de marque de transaction sont utilisés pour la synchronisation des validations avec des transactions marquées.

TRAN_MARKLATCH_EX

Se produit lors de l'attente d'un verrou en mode exclusif sur une transaction marquée. Les verrous internes de marque de transaction sont utilisés pour la synchronisation des validations avec des transactions marquées.

TRAN_MARKLATCH_KP

Se produit lors de l'attente d'un verrou en mode de conservation sur une transaction marquée. Les verrous internes de marque de transaction sont utilisés pour la synchronisation des validations avec des transactions marquées.

TRAN_MARKLATCH_NL

À usage interne uniquement.

TRAN_MARKLATCH_SH

Se produit lors de l'attente d'un verrou en mode partagé sur une transaction marquée. Les verrous internes de marque de transaction sont utilisés pour la synchronisation des validations avec des transactions marquées.

TRAN_MARKLATCH_UP

Se produit lors de l'attente d'un verrou en mode de mise à jour sur une transaction marquée. Les verrous internes de marque de transaction sont utilisés pour la synchronisation des validations avec des transactions marquées.

TRANSACTION_MUTEX

Se produit durant la synchronisation de l'accès à une transaction par plusieurs lots.

UTIL_PAGE_ALLOC

Se produit lorsque les analyses des journaux des transactions attendent que de la mémoire soit disponible lors d'une insuffisance de mémoire.

VIEW_DEFINITION_MUTEX

Se produit durant la synchronisation d'accès aux définitions des vues mises en cache.

WAIT_FOR_RESULTS

Se produit durant l'attente du déclenchement d'une notification de requête.

WAITFOR

Se produit suite à une instruction Transact-SQL WAITFOR. La durée de l'attente est déterminée par les paramètres de l'instruction. Il s'agit d'une attente initialisée par l'utilisateur.

WAITSTAT_MUTEX

Se produit durant la synchronisation d'accès au groupe de statistiques utilisées pour remplir sys.dm_os_wait_stats.

WORKTBL_DROP

Se produit lors d'une suspension avant une nouvelle tentative, suite à l'échec de la suppression d'une table de travail.

WRITELOG

Se produit lors de l'attente d'un vidage du journal. Les opérations courantes qui provoquent des vidages du journal sont les points de vérification et les validations des transactions.

XACT_OWN_TRANSACTION

Se produit pendant l'attente de l'obtention de la propriété d'une transaction.

XACT_RECLAIM_SESSION

Se produit lorsque vous attendez que le propriétaire actuel d'une session libère la propriété de la session.

XACTLOCKINFO

Se produit durant la synchronisation de l'accès à la liste des verrous d'une transaction. Outre la transaction proprement dite, la liste des verrous est accessible par le biais d'opérations telles que la détection des blocages et la migration des verrous durant les fractionnements de pages.

XACTWORKSPACE_MUTEX

Se produit durant la synchronisation des détections à partir d'une transaction et du nombre de verrous de base de données entre les membres d'inscription d'une transaction.

Voir aussi

Référence

Fonctions et vues de gestion dynamique
Vues de gestion dynamique SQL Server liées au système d'exploitation

Aide et Informations

Assistance sur SQL Server 2005

Historique des modifications

Version Historique

14 avril 2006

Nouveau contenu :
  • Ajout des types d'attente suivants : FULLTEXT GATHERER, EE_SPECPROC_MAP_INIT, ERROR_REPORTING_MANAGER.
Contenu modifié :
  • Révision de la description du type d'attente OLEDB.

5 décembre 2005

Nouveau contenu :
  • Tous les types d'attente qui se produisent dans SQL Server 2005 ont été ajoutés.
Contenu modifié :
  • Les descriptions de plusieurs types d'attente ont été mises à jour.