Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Van toepassing op:SQL Server
Geeft een rij terug voor elke wachtrijmonitor in de instantie. Een wachtrijmonitor beheert de activatie van een wachtrij.
| Kolomnaam | Gegevenstype | Nullbaar | Description |
|---|---|---|---|
database_id |
int | Yes | Objectidentificatie voor de database die de wachtrij bevat die de monitor bekijkt. |
queue_id |
int | Yes | Objectidentificatie voor de wachtrij die de monitor bekijkt. |
state |
nvarchar(32) | Yes | Staat van de monitor. Deze waarde is een van de volgende opties:INACTIVENOTIFIEDRECEIVES_OCCURRING |
last_empty_rowset_time |
datetime | Yes | De laatste keer dat a RECEIVE uit de wachtrij een leeg resultaat terugleverde. |
last_activated_time |
datetime | Yes | De laatste keer dat deze wachtrijmonitor een opgeslagen procedure activeerde. |
tasks_waiting |
int | Yes | Aantal sessies dat momenteel wacht binnen een RECEIVE statement voor deze wachtrij.Notitie: Deze waarde omvat elke sessie die een ontvangst-instructie uitvoert, ongeacht of de wachtrijmonitor de sessie is gestart. Het is voor wanneer je samen met RECEIVEgebruiktWAITFOR. Met andere woorden, deze taken wachten op berichten die in de wachtrij binnenkomen. |
Permissions
SQL Server 2019 (15.x) en eerdere versies vereisen VIEW SERVER STATE machtiging op de server.
VOOR SQL Server 2022 (16.x) en latere versies is machtiging vereist VIEW SERVER PERFORMANCE STATE op de server.
Voorbeelden
Eén. Huidige status wachtrijmonitor
Dit scenario geeft de actuele status van alle berichtwachtrijen.
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;