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.
Sunucudaki aktif sorgu bildirimleri abonelikleriyle ilgili bilgileri döndürür. Bu görünümü, sunucuda veya belirli bir veritabanında aktif abonelikleri kontrol etmek veya belirli bir sunucu prensibasını kontrol etmek için kullanabilirsiniz.
| Sütun adı | Veri türü | Description |
|---|---|---|
| id | int | Abonelik kimliği. |
| database_id | int | Bildirim sorgusunun yürütüldüğü veritabanının kimliği. Bu veritabanı, bu abonelikle ilgili bilgileri saklar. |
| Sid | varbinary(85) | Bu aboneliği oluşturan ve sahibi olan sunucu yöneticisinin güvenlik kimliği. |
| object_id | int | Abonelik parametreleriyle ilgili bilgileri saklayan iç tablonun ID'si. |
| Oluşturulan | datetime | Aboneliğin oluşturulduğu tarih ve saat. |
| Zaman aşımı | int | Abonelik süresi saniyeler içinde. Bu süre geçtikten sonra bildirim devreye girmeye işaretlenecek. Not: Gerçek ateşleme süresi, belirtilen zaman aşımından daha uzun olabilir. Ancak, aboneliği geçersiz kılan bir değişiklik belirtilen zaman aşımından sonra ancak abonelik devre dışı bırakılmadan önce gerçekleşirse, SQL Server değişikliğin yapıldığı anda devre dışı bırakılmasını sağlar. |
| durum | int | Aboneliğin durumunu gösterir. Kodlar listesi için açıklamalar altındaki tabloya bakınız. |
İlişki Kardinaliteleri
| From | To | On | Türü |
|---|---|---|---|
| sys.dm_qn_subscriptions | sys.databases | database_id | Çoka bir |
| sys.dm_qn_subscriptions | sys.internal_tables | object_id | Çoka bir |
Açıklamalar
0 durum kodu, tanımlanmamış bir durumu gösterir.
Aşağıdaki durum kodları, bir aboneliğin bir değişiklik nedeniyle kapatıldığını gösterir:
| Code | Küçük statü | Bilgi |
|---|---|---|
| 65798 | Abonelik kapatıldı çünkü veri değişti | Abonelik insert ile tetikleniyor |
| 65799 | Abonelik kapatıldı çünkü veri değişti | Silmek |
| 65800 | Abonelik kapatıldı çünkü veri değişti | Güncelleştir |
| 65801 | Abonelik kapatıldı çünkü veri değişti | Birleştir |
| 65802 | Abonelik kapatıldı çünkü veri değişti | Kısma tablo |
| 66048 | Abonelik süresi dolduğu için kapatıldı | Tanımlanmamış bilgi modu |
| 66315 | Abonelik kapandı çünkü nesne değişti | nesne veya kullanıcı düşürüldü |
| 66316 | Abonelik kapandı çünkü nesne değişti | nesne değiştirildi |
| 66565 | Abonelik kapatıldı çünkü veritabanı ayrıldı veya kaldırıldı | sunucu veya veritabanı yeniden başlatıldı |
| 66571 | Abonelik kapatıldı çünkü veritabanı ayrıldı veya kaldırıldı | nesne veya kullanıcı düşürüldü |
| 66572 | Abonelik kapatıldı çünkü veritabanı ayrıldı veya kaldırıldı | nesne değiştirildi |
| 67341 | Abonelik, sunucudaki kaynak eksikliği nedeniyle tetiklendi | Abonelik, sunucudaki kaynak eksikliği nedeniyle tetiklendi |
Aşağıdaki durum kodları abonelik oluşturulamadığını gösterir:
| Code | Küçük statü | Bilgi |
|---|---|---|
| 132609 | Abonelik oluşturma başarısız oldu çünkü ifade desteklenmiyor | Sorgulama çok karmaşık |
| 132610 | Abonelik oluşturma başarısız oldu çünkü ifade desteklenmiyor | Abonelik için geçersiz beyanı |
| 132611 | Abonelik oluşturma başarısız oldu çünkü ifade desteklenmiyor | Abonelik için geçersiz set seçenekleri |
| 132612 | Abonelik oluşturma başarısız oldu çünkü ifade desteklenmiyor | Geçersiz izolasyon seviyesi |
| 132622 | Abonelik oluşturma başarısız oldu çünkü ifade desteklenmiyor | Dahili kullanım |
| 132623 | Abonelik oluşturma başarısız oldu çünkü ifade desteklenmiyor | Tablo başına şablon sınırının üzerinde |
Aşağıdaki durum kodları dahili olarak kullanılır ve kontrol öldürme ve başlatma modları olarak sınıflandırılır:
| Code | Küçük statü | Bilgi |
|---|---|---|
| 198656 | İçsel olarak kullanılan: kontrol öldürme ve başlatma modları | Tanımlanmamış bilgi modu |
| 198928 | Abonelik yok edildi | Abonelik kapatıldı çünkü veritabanı bağlanmıştı |
| 198929 | Abonelik yok edildi | Abonelik kapatıldı çünkü kullanıcı bırakıldı |
| 198930 | Abonelik yok edildi | Abonelik yeniden abonelik nedeniyle kaldırıldı |
| 198931 | Abonelik yok edildi | abonelik sona erdi |
| 199168 | Abonelik aktiftir | Tanımlanmamış bilgi modu |
| 199424 | Abonelik başlatıldı ama henüz aktif değil | Tanımlanmamış bilgi modu |
Permissions
Sunucuda SUNUCU DURUMU izni gerektirir VIEW .
Note
Kullanıcının SUNUCU DURUMU izni yoksa VIEW bu görünüm mevcut kullanıcıya ait abonelikler hakkında bilgi döndürür.
SQL Server 2022 ve üzeri için izinler
Sunucuda SERVER PERFORMANCE STATE izni gerektirir VIEW .
Examples
A. Mevcut kullanıcı için aktif sorgu bildirimi aboneliklerini döndür
Aşağıdaki örnek, mevcut kullanıcının aktif sorgu bildirimi aboneliklerini döndürür. Kullanıcının SUNUCU DURUMU izinleri varsa VIEW , sunucudaki tüm aktif abonelikler geri döner.
SELECT id, database_id, sid, object_id, created, timeout, status
FROM sys.dm_qn_subscriptions;
GO
B. Belirli bir kullanıcı için aktif sorgu bildirimi aboneliklerini geri göndermek
Aşağıdaki örnek, giriş Ruth0ile abone olan aktif sorgu bildirimi aboneliklerini geri döndürür.
SELECT id, database_id, sid, object_id, created, timeout, status
FROM sys.dm_qn_subscriptions
WHERE sid = SUSER_SID('Ruth0');
GO
C. Sorgu bildirimi abonelikleri için dahili tablo meta verisi döndürülüyor
Aşağıdaki örnek, sorgu bildirimi abonelikleri için dahili tablo meta verilerini döndürür.
SELECT qn.id AS query_subscription_id
,it.name AS internal_table_name
,it.object_id AS internal_table_id
FROM sys.internal_tables AS it
JOIN sys.dm_qn_subscriptions AS qn ON it.object_id = qn.object_id
WHERE it.internal_type_desc = 'QUERY_NOTIFICATION';
GO