sys.dm_os_threads (Transact-SQL)

platí pro:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics 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.

Note

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 CONFIGURATIONSET 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í pro: Azure Synapse Analytics, Analytics Platform System (PDW)

Identifikátor uzlu, na který je tato distribuce zapnutá.

Povolení

Na SQL Serveru a spravované instanci SQL vyžaduje VIEW SERVER STATE oprávnění.

U služby SQL Database Basic, S0a S1 a pro databáze v elastických fondech, účet správce serveru serveru, účet správce Microsoft Entra nebo členství v roli ##MS_ServerStateReader##serveru. U všech ostatních cílů služby SQL Database se vyžaduje buď oprávnění VIEW DATABASE STATE k databázi, nebo členství v roli serveru ##MS_ServerStateReader##.

Oprávnění pro SQL Server 2022 a novější

Vyžaduje VIEW oprávnění SERVER PERFORMANCE STATE 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.

Note

Pro stručnost následující dotaz používá ve výroku * hvězdičku (SELECT). 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)