Sdílet prostřednictvím


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.

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)