Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
platí pro:SQL Server
Vrací informace o odběrech aktivních dotazů na serveru. Tento pohled můžete použít ke kontrole aktivních odběrů na serveru nebo v určené databázi, případně ke kontrole specifického principu serveru.
| Název sloupce | Datový typ | Description |
|---|---|---|
| id | int | Doklad předplatného. |
| database_id | int | ID databáze, ve které byl dotaz na oznámení vykonán. Tato databáze uchovává informace týkající se tohoto předplatného. |
| sid | varbinary(85) | Bezpečnostní ID serverového principálu, který toto předplatné vytvořil a vlastní jinde. |
| object_id | int | ID interní tabulky, která uchovává informace o parametrech předplatného. |
| Vytvořen | datetime | Datum a čas, kdy bylo předplatné vytvořeno. |
| přerušení zápasu | int | Vypršení předplatného během několika sekund. Oznámení bude po uplynutí této doby označeno jako aktivní. Poznámka: Skutečný čas výstřelu může být delší než stanovený časový limit. Pokud však změna, která předplatné zneplatní, nastane po specifikovaném časovém limitu, ale před jeho zrušením, SQL Server zajistí, že spuštění proběhne v době, kdy byla změna provedena. |
| Stav | int | Označuje stav předplatného. Viz tabulka pod poznámkami pro seznam kódů. |
Kardinální vztahy
| Od | To | Na | Typ |
|---|---|---|---|
| sys.dm_qn_subscriptions | sys.databases | database_id | Many-to-one |
| sys.dm_qn_subscriptions | sys.internal_tables | object_id | Many-to-one |
Poznámky
Stavový kód 0 označuje nedefinovaný stav.
Následující stavové kódy označují, že předplatné bylo zrušeno kvůli změně:
| Code | Status nezletilých | Informace |
|---|---|---|
| 65798 | Předplatné zrušeno, protože se změnila data | Předplatné spuštěné vložením |
| 65799 | Předplatné zrušeno, protože se změnila data | Vymazat |
| 65800 | Předplatné zrušeno, protože se změnila data | Aktualizovat |
| 65801 | Předplatné zrušeno, protože se změnila data | Merge |
| 65802 | Předplatné zrušeno, protože se změnila data | Tabulka zkrácení |
| 66048 | Předplatné zrušeno, protože vypršel timeout | Nedefinovaný informační režim |
| 66315 | Předplatné zrušeno, protože se změnil objekt | objekt nebo uživatel byl vypuštěn |
| 66316 | Předplatné zrušeno, protože se změnil objekt | objekt byl upraven |
| 66565 | Předplatné bylo zrušeno, protože databáze byla odpojena nebo zrušena | Server nebo databáze restartovány |
| 66571 | Předplatné bylo zrušeno, protože databáze byla odpojena nebo zrušena | objekt nebo uživatel byl vypuštěn |
| 66572 | Předplatné bylo zrušeno, protože databáze byla odpojena nebo zrušena | objekt byl upraven |
| 67341 | Předplatné bylo spuštěno kvůli nedostatku zdrojů na serveru | Předplatné bylo spuštěno kvůli nedostatku zdrojů na serveru |
Následující stavové kódy naznačují, že předplatné nebylo vytvořeno:
| Code | Status nezletilých | Informace |
|---|---|---|
| 132609 | Vytvoření předplatného selhalo, protože příkaz není podporován | Dotaz je příliš složitý |
| 132610 | Vytvoření předplatného selhalo, protože příkaz není podporován | Neplatné prohlášení pro předplatné |
| 132611 | Vytvoření předplatného selhalo, protože příkaz není podporován | Možnosti neplatných sad pro předplatné |
| 132612 | Vytvoření předplatného selhalo, protože příkaz není podporován | Neplatná úroveň izolace |
| 132622 | Vytvoření předplatného selhalo, protože příkaz není podporován | Interně používané |
| 132623 | Vytvoření předplatného selhalo, protože příkaz není podporován | nad limitem šablony na tabulku |
Následující stavové kódy se používají interně a jsou klasifikovány jako režimy check kill a init:
| Code | Status nezletilých | Informace |
|---|---|---|
| 198656 | Použití interně: zkontrolovat kill a init módy | Nedefinovaný informační režim |
| 198928 | Předplatné bylo zničeno | Předplatné bylo zrušeno, protože byla připojena databáze |
| 198929 | Předplatné bylo zničeno | Předplatné bylo zrušeno, protože uživatel byl odstraněn |
| 198930 | Předplatné bylo zničeno | Předplatné bylo zrušeno kvůli opětovnému předplatnému |
| 198931 | Předplatné bylo zničeno | Subscription byl zabit |
| 199168 | Předplatné je aktivní | Nedefinovaný informační režim |
| 199424 | Předplatné inicializováno, ale ještě není aktivní | Nedefinovaný informační režim |
Povolení
Vyžaduje VIEW oprávnění SERVER STATE na serveru.
Note
Pokud uživatel nemá VIEW oprávnění SERVER STATE, tento pohled vrátí informace o odběrech vlastněných současným uživatelem.
Oprávnění pro SQL Server 2022 a novější
Vyžaduje VIEW oprávnění SERVER PERFORMANCE STATE na serveru.
Examples
A. Vraťte odběry aktivních dotazů pro aktuálního uživatele
Následující příklad vrací odběry aktivních dotazů aktuálního uživatele. Pokud má uživatel VIEW oprávnění SERVER STATE, všechna aktivní odběrová na serveru se vrátí.
SELECT id, database_id, sid, object_id, created, timeout, status
FROM sys.dm_qn_subscriptions;
GO
B. Vrácení odběrů aktivních oznámení o dotazech pro určeného uživatele
Následující příklad vrací odběry aktivních dotazů oznámení, která byla přihlášena .Ruth0
SELECT id, database_id, sid, object_id, created, timeout, status
FROM sys.dm_qn_subscriptions
WHERE sid = SUSER_SID('Ruth0');
GO
C. Vrácení interních metadat tabulek pro odběry oznámení o dotazech
Následující příklad vrací interní metadata tabulek pro odběry notifikací dotazů.
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