Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Van toepassing op:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform Systeem (PDW)
SQL-database in Microsoft Fabric
Geeft een lijst terug van alle SQL Server Operating System-threads die draaien onder het SQL Server-proces.
Opmerking
Om dit te noemen vanuit Azure Synapse Analytics of Analytics Platform System (PDW), gebruik de naam sys.dm_pdw_nodes_os_threads. Deze syntaxis wordt niet ondersteund door een serverloze SQL-pool in Azure Synapse Analytics.
| Kolomnaam | Gegevenstype | Description |
|---|---|---|
| thread_address | varbinary(8) | Geheugenadres (primaire sleutel) van de thread. |
| started_by_sqlservr | bit | Geeft de thread-initiator aan. 1 = SQL Server startte de thread. 0 = Een andere component startte de thread, zoals een uitgebreide opgeslagen procedure vanuit SQL Server. |
| os_thread_id | int | ID van de thread die door het besturingssysteem wordt toegewezen. |
| status | int | Interne statusvlag. |
| instruction_address | varbinary(8) | Adres van de instructie die momenteel wordt uitgevoerd. |
| creation_time | datetime | Tijd toen deze thread werd aangemaakt. |
| kernel_time | bigint | Hoeveelheid kerneltijd die door deze thread wordt gebruikt. |
| usermode_time | bigint | Hoeveelheid gebruikerstijd die door deze thread wordt gebruikt. |
| stack_base_address | varbinary(8) | Geheugenadres van het hoogste stackadres voor deze thread. |
| stack_end_address | varbinary(8) | Geheugenadres van het laagste stackadres van deze thread. |
| stack_bytes_committed | int | Aantal bytes dat in de stack wordt gecommitteerd. |
| stack_bytes_used | int | Aantal bytes die actief in de thread worden gebruikt. |
| affiniteit | bigint | CPU-masker waarop deze thread draait. Dit hangt af van de waarde die is geconfigureerd door de ALTER SERVER CONFIGURATION SET PROCESS AFFINITY-instructie . Kan anders zijn dan de scheduler in het geval van soft-affiniteit. |
| Priority | int | Prioriteitswaarde van deze thread. |
| Lokatie | int | Gecachete locale LCID voor de thread. |
| Teken | varbinary(8) | Gecachte imitatietokenhandle voor de thread. |
| is_impersonating | int | Geeft aan of deze thread gebruikmaakt van Win32-imitatie. 1 = De thread gebruikt beveiligingsgegevens die verschillen van de standaard van het proces. Dit geeft aan dat de thread zich voordoet als een entiteit anders dan degene die het proces heeft gecreƫerd. |
| is_waiting_on_loader_lock | int | Status van het besturingssysteem of de thread wacht op de loader-lock. |
| fiber_data | varbinary(8) | Huidige Win32-vezel die op de thread loopt. Dit is alleen van toepassing wanneer SQL Server is geconfigureerd voor lichtgewicht pooling. |
| thread_handle | varbinary(8) | Alleen intern gebruik. |
| event_handle | varbinary(8) | Alleen intern gebruik. |
| scheduler_address | varbinary(8) | Geheugenadres van de scheduler die aan deze thread is gekoppeld. Voor meer informatie, zie sys.dm_os_schedulers (Transact-SQL). |
| werknemer_adres | varbinary(8) | Geheugenadres van de worker die aan deze thread is gebonden. Voor meer informatie, zie sys.dm_os_workers (Transact-SQL). |
| fiber_context_address | varbinary(8) | Interne vezelcontextadres. Dit is alleen van toepassing wanneer SQL Server is geconfigureerd voor lichtgewicht pooling. |
| self_address | varbinary(8) | Interne consistentieaanwijzer. |
| processor_group | smallint |
Van toepassing op: SQL Server 2008 R2 (10.50.x) en later. Processorgroep-ID. |
| pdw_node_id | int |
Van toepassing op: Azure Synapse Analytics, Analytics Platform System (PDW) De id voor het knooppunt waarop deze distributie zich bevindt. |
Permissions
Voor SQL Server en SQL Managed Instance is een machtiging vereist VIEW SERVER STATE .
Voor servicedoelstellingen van SQL Database Basic, S0 en S1 en voor databases in elastische pools is het serverbeheerdersaccount , het Microsoft Entra-beheerdersaccount of het lidmaatschap van de ##MS_ServerStateReader##serverrol vereist. Voor alle andere SQL Database-servicedoelstellingen is de VIEW DATABASE STATE machtiging voor de database of het lidmaatschap van de ##MS_ServerStateReader## serverfunctie vereist.
Machtigingen voor SQL Server 2022 en hoger
Vereist de machtiging PRESTATIESTATUS VAN DE WEERGAVESERVER op de server.
Notities over de Linux-versie
Door hoe de SQL-engine werkt in Linux, komt een deel van deze informatie niet overeen met de diagnostische gegevens van Linux. Bijvoorbeeld, os_thread_id komt niet overeen met het resultaat van tools zoals ps,top of de procfs (/proc/pid). Dit is te danken aan de Platform Abstraction Layer (SQLPAL), een laag tussen SQL Server-componenten en het besturingssysteem.
Voorbeelden
Bij het opstarten start SQL Server threads en koppelt vervolgens workers aan die threads. Externe componenten, zoals een uitgebreide opgeslagen procedure, kunnen echter threads starten onder het SQL Server-proces. SQL Server heeft geen controle over deze threads. sys.dm_os_threads kan informatie verstrekken over onbetrouwbare threads die resources verbruiken in het SQL Server-proces.
De volgende query wordt gebruikt om workworkers te vinden, samen met de tijd die wordt gebruikt voor uitvoering, die threads draaien die niet door SQL Server zijn gestart.
Opmerking
Voor de beknoptheid gebruikt de volgende query een asterisk (*) in de SELECT stelling. Je moet het gebruik van het asterisk (*) vermijden, vooral tegen catalogusweergaven, dynamische beheerweergaven en systeemtabel-waardige functies. Toekomstige upgrades en releases van Microsoft SQL Server kunnen kolommen toevoegen en de volgorde van kolommen in deze weergaven en functies wijzigen. Deze wijzigingen kunnen applicaties breken die een bepaalde volgorde en aantal kolommen verwachten.
SELECT *
FROM sys.dm_os_threads
WHERE started_by_sqlservr = 0;
Zie ook
sys.dm_os_workers (Transact-SQL)
Dynamische beheerweergaven van SQL Server-besturingssysteem (Transact-SQL)