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
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
databáze SQL v Microsoft Fabric
Vrací seznam všech vláken operačního systému SQL Server, která běží v procesu SQL Server.
Poznámka:
Pro volání z Azure Synapse Analytics nebo Analytics Platform System (PDW) použijte název sys.dm_pdw_nodes_os_threads. Tato syntaxe není podporována bezserverovým fondem SQL ve službě Azure Synapse Analytics.
| Název sloupce | Datový typ | Description |
|---|---|---|
| thread_address | varbinary(8) | Paměťová adresa (primární klíč) vlákna. |
| started_by_sqlservr | bit | Označuje iniciátor vlákna. 1 = SQL Server zahájil vlákno. 0 = Další komponenta zahájila vlákno, například rozšířená uložená procedura přímo v SQL Serveru. |
| os_thread_id | int | ID vlákna, které je přiřazeno operačním systémem. |
| stav | int | Interní stavová vlajka. |
| instruction_address | varbinary(8) | Adresa instrukce, která se právě vykonává. |
| creation_time | datetime | Čas, kdy bylo toto vlákno vytvořeno. |
| kernel_time | bigint | Množství času jádra, které toto vlákno využije. |
| usermode_time | bigint | Množství uživatelského času, který tento vlákno spotřebuje. |
| stack_base_address | varbinary(8) | Paměťová adresa nejvyšší adresy zásobníku pro toto vlákno. |
| stack_end_address | varbinary(8) | Paměťová adresa nejnižší adresy zásobníku tohoto vlákna. |
| stack_bytes_committed | int | Počet bajtů, které jsou uloženy ve zásobníku. |
| stack_bytes_used | int | Počet bajtů, které jsou ve vlákně aktivně využívány. |
| spřažení | bigint | CPU maska, na které toto vlákno běží. To závisí na hodnotě konfigurované příkazem ALTER SERVER CONFIGURATION SET PROCESS AFFINITY . Může to být jiné než plánovač v případě měkké afinity. |
| Priority | int | Prioritní hodnota tohoto vlákna. |
| Locale | int | Cacheované lokální LCID pro vlákno. |
| Žeton | varbinary(8) | Uložený handle tokenu pro předstírání vlákna. |
| is_impersonating | int | Označuje, zda toto vlákno používá Win32 imitaci. 1 = Vlákno používá bezpečnostní přihlašovací údaje, které se liší od výchozího nastavení procesu. To naznačuje, že vlákno se vydáva za jinou entitu než tu, která proces vytvořila. |
| is_waiting_on_loader_lock | int | Stav operačního systému, zda vlákno čeká na zámek loaderu. |
| fiber_data | varbinary(8) | Aktuální Win32 optika, která běží na vlákně. To platí pouze tehdy, když je SQL Server nakonfigurován pro lehké poolování. |
| thread_handle | varbinary(8) | Pouze interní použití. |
| event_handle | varbinary(8) | Pouze interní použití. |
| scheduler_address | varbinary(8) | Paměťová adresa plánovače, který je s tímto vláknem spojen. Pro více informací viz sys.dm_os_schedulers (Transact-SQL). |
| adresa_pracovníka | varbinary(8) | Paměťová adresa pracovníka, který je vázaný na toto vlákno. Pro více informací viz sys.dm_os_workers (Transact-SQL). |
| fiber_context_address | varbinary(8) | Interní adresa kontextu vlákna. To platí pouze tehdy, když je SQL Server nakonfigurován pro lehké poolování. |
| self_address | varbinary(8) | Ukazatel vnitřní konzistence. |
| processor_group | smallint |
Platí na: SQL Server 2008 R2 (10.50.x) a pozdější. ID skupiny procesorů. |
| pdw_node_id | int |
Platí na: Azure Synapse Analytics, Analytics Platform System (PDW) Identifikátor uzlu, na který je tato distribuce zapnutá. |
Povolení
Na SQL Serveru a službě SQL Managed Instance vyžaduje VIEW SERVER STATE oprávnění.
U cílů služby SQL Database Basic, S0 a S1 a pro databáze v elastických fondech se vyžaduje účet správce serveru , účet správce Microsoft Entra nebo členství v ##MS_ServerStateReader##roli serveru . U všech ostatních cílů VIEW DATABASE STATE služby SQL Database se vyžaduje buď oprávnění k databázi, nebo členství v ##MS_ServerStateReader## roli serveru.
Oprávnění pro SQL Server 2022 a novější
Vyžaduje oprávnění ZOBRAZIT STAV VÝKONU SERVERU na serveru.
Poznámky k linuxové verzi
Kvůli tomu, jak SQL engine funguje v Linuxu, některé z těchto informací neodpovídají diagnostickým datům Linuxu. Například neodpovídá os_thread_id výsledku nástrojů jako ps,top nebo procfs (/proc/pid). Je to způsobeno vrstvou Platform Abstraction Layer (SQLPAL), která je mezi komponentami SQL Serveru a operačním systémem.
Examples
Při spuštění SQL Server začíná vlákna a pak s nimi přiřazuje pracovníky. Externí komponenty, jako je rozšířená uložená procedura, však mohou zahajovat vlákna v procesu SQL Serveru. SQL Server nemá nad těmito vlákny žádnou kontrolu. sys.dm_os_threads může poskytnout informace o neautorizovaných vláknech, která spotřebovávají zdroje v procesu SQL Serveru.
Následující dotaz slouží k nalezení pracovníků spolu s časem použitým na vykonání, kteří běží vlákna, která SQL Server nespustil.
Poznámka:
Pro stručnost následující dotaz používá ve výroku SELECT hvězdičku (*). Měli byste se vyhnout používání hvězdičky (*), zejména u katalogových pohledů, dynamických manažerských pohledů a systémových tabulkových funkcí. Budoucí aktualizace a vydání Microsoft SQL Serveru mohou přidat sloupce a změnit pořadí sloupců v těchto pohledech a funkcích. Tyto změny mohou narušit aplikace, které očekávají určitý pořadí a počet sloupců.
SELECT *
FROM sys.dm_os_threads
WHERE started_by_sqlservr = 0;
Viz také
sys.dm_os_workers (Transact-SQL)
Zobrazení dynamické správy související s operačním systémem SQL Server (Transact-SQL)