sys.dm_broker_queue_monitors (Transact-sql)
Her sıra monitör örneği için bir satır döndürür. Sıra monitör etkinleştirme sıra için yönetir.
Sütun adı |
Veri türü |
Açıklama |
---|---|---|
database_id |
int |
Nesne tanımlayıcısı LCD saatler sıra içeren veritabanı. NULL OLABİLECEK. |
queue_id |
int |
LCD saatler sıra için nesne tanımlayıcısı. NULL OLABİLECEK. |
Devlet |
nvarchar(32) |
Durum İzleyicisi. NULL OLABİLECEK. Bu aşağıdakilerden oluşur:
|
last_empty_rowset_time |
datetime |
Son kez sıradan bir Al boş bir sonuç döndürdü. NULL OLABİLECEK. |
last_activated_time |
datetime |
Son kez bu sıra monitör depolanan yordam aktif. NULL OLABİLECEK. |
tasks_waiting |
int |
Şu anda bu sıraya Al deyimi içinde bekleyen oturumları sayısı. NULL OLABİLECEK.
Not
Bu ne olursa olsun, ister sıra monitör oturumu başlatan bir Al deyimi yürütme herhangi bir oturum içerir.WAITFOR alma ile birlikte kullanıyorsanız budur.Temelde, bu görevleri, üzerinde sıra geldiğinde iletileri için bekliyor.
|
İzinler
Sunucu üzerindeki VIEW server state izni gerektirir.
Örnekler
A.Geçerli durum sıra monitör
Bu senaryo tüm ileti sıralarında geçerli durumunu sağlar.
SELECT t1.name AS [Service_Name], t3.name AS [Schema_Name], t2.name AS [Queue_Name],
CASE WHEN t4.state IS NULL THEN 'Not available'
ELSE t4.state
END AS [Queue_State],
CASE WHEN t4.tasks_waiting IS NULL THEN '--'
ELSE CONVERT(VARCHAR, t4.tasks_waiting)
END AS tasks_waiting,
CASE WHEN t4.last_activated_time IS NULL THEN '--'
ELSE CONVERT(varchar, t4.last_activated_time)
END AS last_activated_time ,
CASE WHEN t4.last_empty_rowset_time IS NULL THEN '--'
ELSE CONVERT(varchar,t4.last_empty_rowset_time)
END AS last_empty_rowset_time,
(
SELECT COUNT(*)
FROM sys.transmission_queue t6
WHERE (t6.from_service_name = t1.name) ) AS [Tran_Message_Count]
FROM sys.services t1 INNER JOIN sys.service_queues t2
ON ( t1.service_queue_id = t2.object_id )
INNER JOIN sys.schemas t3 ON ( t2.schema_id = t3.schema_id )
LEFT OUTER JOIN sys.dm_broker_queue_monitors t4
ON ( t2.object_id = t4.queue_id AND t4.database_id = DB_ID() )
INNER JOIN sys.databases t5 ON ( t5.database_id = DB_ID() )
SELECT t1.name AS [Service_Name], t3.name AS [Schema_Name], t2.name AS [Queue_Name],
CASE WHEN t4.state IS NULL THEN 'Not available'
ELSE t4.state
END AS [Queue_State],
CASE WHEN t4.tasks_waiting IS NULL THEN '--'
ELSE CONVERT(VARCHAR, t4.tasks_waiting)
END AS tasks_waiting,
CASE WHEN t4.last_activated_time IS NULL THEN '--'
ELSE CONVERT(varchar, t4.last_activated_time)
END AS last_activated_time ,
CASE WHEN t4.last_empty_rowset_time IS NULL THEN '--'
ELSE CONVERT(varchar,t4.last_empty_rowset_time)
END AS last_empty_rowset_time,
(
SELECT COUNT(*)
FROM sys.transmission_queue t6
WHERE (t6.from_service_name = t1.name) ) AS [Tran_Message_Count]
FROM sys.services t1 INNER JOIN sys.service_queues t2
ON ( t1.service_queue_id = t2.object_id )
INNER JOIN sys.schemas t3 ON ( t2.schema_id = t3.schema_id )
LEFT OUTER JOIN sys.dm_broker_queue_monitors t4
ON ( t2.object_id = t4.queue_id AND t4.database_id = DB_ID() )
INNER JOIN sys.databases t5 ON ( t5.database_id = DB_ID() )
Ayrıca bkz.
Başvuru
Dinamik yönetimi görünümler ve işlevler (Transact-sql)
Ilgili dinamik yönetim görünümleri (Transact-sql) Service aracı