Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Örnekteki her kuyruk monitörü için bir satır döndürür. Bir kuyruk monitörü, bir kuyruğun aktivasyonunu yönetir.
| Sütun adı | Veri türü | Null olabilir | Description |
|---|---|---|---|
database_id |
int | Yes | Monitörün izlediği kuyruğu içeren veritabanı için nesne tanımlayıcısı. |
queue_id |
int | Yes | Monitörün izlediği kuyruk için nesne tanımlayıcısı. |
state |
nvarchar(32) | Yes | Monitörün durumu. Bu değer aşağıdaki seçeneklerden biridir:INACTIVENOTIFIEDRECEIVES_OCCURRING |
last_empty_rowset_time |
datetime | Yes | En son kuyruktan bir RECEIVE kişi boş sonuç vermişti. |
last_activated_time |
datetime | Yes | Bu kuyruk monitörü son seferinde saklanan bir prosedür etkinleştirilmişti. |
tasks_waiting |
int | Yes | Bu kuyruk için şu anda bir RECEIVE ekstre içinde bekleyen oturum sayısı.Not: Bu değer, kuyruk monitörünün oturumu başlatıp başlatmadığına bakılmaksızın, bir alım ifadesi yürüten herhangi bir oturumu kapsar. Birlikte kullandığınız WAITFORRECEIVEzamanlar için. Başka bir deyişle, bu görevler mesajların kuyruğuna gelmesini bekler. |
Permissions
SQL Server 2019 (15.x) ve önceki sürümleri sunucuda VIEW SERVER STATE izin gerektirir.
SQL Server 2022 (16.x) ve sonraki sürümleri sunucuda izin gerektirir VIEW SERVER PERFORMANCE STATE .
Örnekler
A. Güncel durum kuyruk monitörü
Bu senaryo, tüm mesaj kuyruklarının mevcut durumunu sağlar.
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;