Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
S'applique à :SQL Server
Retourne une ligne pour chaque moniteur de file d'attente de l'instance. Un moniteur de file d'attente gère l'activation pour une file d'attente.
| Nom de la colonne | Type de données | Pouvant être nul | Description |
|---|---|---|---|
database_id |
int | Oui | Identificateur d'objet de la base de données qui contient la file d'attente surveillée par le moniteur. |
queue_id |
int | Oui | Identificateur d'objet de la file d'attente surveillée par le moniteur. |
state |
nvarchar(32) | Oui | État du moniteur. Cette valeur est l’une des options suivantes :INACTIVENOTIFIEDRECEIVES_OCCURRING |
last_empty_rowset_time |
datetime | Oui | Dernière fois qu’une RECEIVE file d’attente a retourné un résultat vide. |
last_activated_time |
datetime | Oui | Horodatage de la dernière activation d'une procédure stockée par ce moniteur de file d'attente. |
tasks_waiting |
int | Oui | Nombre de sessions actuellement en attente dans une RECEIVE instruction pour cette file d’attente.Note: Cette valeur inclut toute session exécutant une instruction de réception, que le moniteur de file d’attente ait commencé la session ou non. C’est pour quand vous utilisez WAITFOR ensemble avec RECEIVE. En d’autres termes, ces tâches attendent que les messages arrivent dans la file d’attente. |
autorisations
SQL Server 2019 (15.x) et les versions antérieures nécessitent VIEW SERVER STATE une autorisation sur le serveur.
SQL Server 2022 (16.x) et versions ultérieures nécessitent VIEW SERVER PERFORMANCE STATE une autorisation sur le serveur.
Exemples
R. Moniteur d'état des files d'attente
Ce scénario fournit le statut actuel de toutes les files d'attente de messages.
SELECT DB_NAME() AS [Database_Name],
s.[name] AS [Service_Name],
sch.[name] AS [Schema_Name],
q.[name] AS [Queue_Name],
ISNULL(m.[state], N'Not available') AS [Queue_State],
m.tasks_waiting,
m.last_activated_time,
m.last_empty_rowset_time,
(SELECT COUNT(1)
FROM sys.transmission_queue AS t6
WHERE t6.from_service_name = s.[name]) AS Tran_Message_Count
FROM sys.services AS s
INNER JOIN sys.databases AS d
ON d.database_id = DB_ID()
INNER JOIN sys.service_queues AS q
ON s.service_queue_id = q.[object_id]
INNER JOIN sys.schemas AS sch
ON q.[schema_id] = sch.[schema_id]
LEFT OUTER JOIN sys.dm_broker_queue_monitors AS m
ON q.[object_id] = m.queue_id
AND m.database_id = d.database_id;