sys.dm_os_threads (Transact-SQL)

gäller för:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)SQL-databas i Microsoft Fabric

Returnerar en lista över alla trådar i SQL Server-operativsystemet som körs under SQL Server-processen.

Anmärkning

För att kalla detta från Azure Synapse Analytics eller Analytics Platform System (PDW), använd namnet sys.dm_pdw_nodes_os_threads. Den här syntaxen stöds inte av en serverlös SQL-pool i Azure Synapse Analytics.

Kolumnnamn Datatyp Description
thread_address varbinary(8) Minnesadress (primärnyckel) för tråden.
started_by_sqlservr bit Indikerar trådinitiatorn.

1 = SQL Server startade tråden.

0 = En annan komponent startade tråden, såsom en utökad lagrad procedur från SQL Server.
os_thread_id int ID för tråden som tilldelas av operativsystemet.
status int Intern statusflagga.
instruction_address varbinary(8) Adressen till instruktionen som för närvarande exekveras.
creation_time datetime Tiden då den här tråden skapades.
kernel_time bigint Mängd kärntid som används av denna tråd.
usermode_time bigint Hur mycket användartid som används av denna tråd.
stack_base_address varbinary(8) Minnesadressen för den högsta stackadressen för denna tråd.
stack_end_address varbinary(8) Minnesadressen till den lägsta stackadressen i denna tråd.
stack_bytes_committed int Antal bytes som är committerade i stacken.
stack_bytes_used int Antal bytes som aktivt används i tråden.
samhörighet bigint CPU-mask som denna tråd körs på. Detta beror på värdet som konfigurerats av ALTER SERVER CONFIGURATION SET PROCESS AFFINITY-satsen . Det kan vara annorlunda än schemaläggaren vid mjuk affinitet.
Priority int Prioritetsvärdet för denna tråd.
Lokal int Cachad lokal LCID för tråden.
Bevis varbinary(8) Cachad imitationstoken för tråden.
is_impersonating int Indikerar om denna tråd använder Win32-imitation.

1 = Tråden använder säkerhetsuppgifter som skiljer sig från processens standard. Detta indikerar att tråden utger sig för att vara en annan entitet än den som skapade processen.
is_waiting_on_loader_lock int Operativsystemstatus för om tråden väntar på laddarlåset.
fiber_data varbinary(8) Nuvarande Win32-fiber som körs på tråden. Detta gäller endast när SQL Server är konfigurerad för lättviktspoolning.
thread_handle varbinary(8) Endast intern användning.
event_handle varbinary(8) Endast intern användning.
scheduler_address varbinary(8) Minnesadressen till schemaläggaren som är kopplad till denna tråd. För mer information, se sys.dm_os_schedulers (Transact-SQL).
arbetare_adress varbinary(8) Minnesadressen för den arbetare som är bunden till denna tråd. För mer information, se sys.dm_os_workers (Transact-SQL).
fiber_context_address varbinary(8) Intern fiberkontextadress. Detta gäller endast när SQL Server är konfigurerad för lättviktspoolning.
self_address varbinary(8) Intern konsekvenspekare.
processor_group smallint Gäller för: SQL Server 2008 R2 (10.50.x) och senare.

Processorgrupp-ID.
pdw_node_id int gäller för: Azure Synapse Analytics, Analytics Platform System (PDW)

Identifieraren för noden som den här fördelningen är på.

Permissions

På SQL Server och SQL Managed Instance kräver VIEW SERVER STATE behörighet.

I SQL Database Grundläggande, S0och S1 tjänstmål och för databaser i elastiska pooler, serveradministratör konto, Microsoft Entra-administratör konto eller medlemskap i ##MS_ServerStateReader##serverrollen krävs. För alla andra SQL Database-tjänstmål krävs antingen VIEW DATABASE STATE behörighet för databasen eller medlemskap i ##MS_ServerStateReader## serverrollen.

Behörigheter för SQL Server 2022 och senare

Kräver BEHÖRIGHET FÖR VISNINGSSERVERNS PRESTANDATILLSTÅND på servern.

Anteckningar om Linux-versionen

På grund av hur SQL-motorn fungerar i Linux stämmer en del av denna information inte överens med Linux-diagnostikdata. Till exempel os_thread_id stämmer inte överens med resultatet av verktyg som ps,top eller procfs (/proc/pid). Detta beror på Platform Abstraction Layer (SQLPAL), ett lager mellan SQL Server-komponenter och operativsystemet.

Examples

Vid uppstart startar SQL Server trådar och kopplar sedan arbetare till dessa trådar. Externa komponenter, såsom en utökad lagrad procedur, kan dock starta trådar under SQL Server-processen. SQL Server har ingen kontroll över dessa trådar. sys.dm_os_threads kan tillhandahålla information om ostörda trådar som förbrukar resurser i SQL Server-processen.

Följande fråga används för att hitta arbetare, tillsammans med tid som används för exekvering, som kör trådar som inte startats av SQL Server.

Anmärkning

För att vara kortfattad använder följande fråga en asterisk (*) i uttalandet SELECT . Du bör undvika att använda asterisken (*), särskilt mot katalogvyer, dynamiska hanteringsvyer och systemtabellsvärda funktioner. Framtida uppgraderingar och versioner av Microsoft SQL Server kan lägga till kolumner och ändra ordningen på kolumnerna i dessa vyer och funktioner. Dessa förändringar kan förstöra applikationer som förväntar sig en viss ordning och antal kolumner.

SELECT *  
  FROM sys.dm_os_threads  
  WHERE started_by_sqlservr = 0;  

Se även

sys.dm_os_workers (Transact-SQL)
SQL Server-operativsystemrelaterade dynamiska hanteringsvyer (Transact-SQL)