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 één rij terug voor elke taak die actief is in de instantie van SQL Server. Een taak is de basiseenheid van uitvoering in SQL Server. Voorbeelden van taken zijn een query, een login, een uitloggen en systeemtaken zoals ghost cleanup-activiteit, checkpoint-activiteit, logwriter, parallelle redo-activiteit. Voor meer informatie over taken, zie de Thread and Task Architecture Guide.
Opmerking
Om dit aan te roepen vanuit Azure Synapse Analytics of Analytics Platform System (PDW), gebruik de naam sys.dm_pdw_nodes_os_tasks. Deze syntaxis wordt niet ondersteund door een serverloze SQL-pool in Azure Synapse Analytics.
| Kolomnaam | Gegevenstype | Description |
|---|---|---|
| task_address | varbinary(8) | Geheugenadres van het object. |
| task_state | nvarchar(60) | Stand van de taak. Dit kan een van de volgende zijn: IN BEHANDELING: Wacht op een worker-thread. RUNNABLE: Runnable, maar wacht op een quantum. LOPEN: Momenteel op de planningsmachine. GESCHORST: Heeft een werknemer, maar wacht op een evenement. KLAAR: Voltooid. SPINLOOP: Vast in een spinlock. |
| context_switches_count | int | Aantal contextwisselingen in de scheduler die deze taak heeft voltooid. |
| pending_io_count | int | Aantal fysieke I/O's dat door deze taak wordt uitgevoerd. |
| pending_io_byte_count | bigint | Totaal aantal bytes aan I/O's dat door deze taak wordt uitgevoerd. |
| pending_io_byte_average | int | Gemiddeld aantal bytes aan I/O's die door deze taak worden uitgevoerd. |
| scheduler_id | int | ID van de ouderplanner. Dit is een handvat voor de plannerinformatie voor deze taak. Voor meer informatie, zie sys.dm_os_schedulers (Transact-SQL). |
| session_id | smallint | ID van de sessie die aan de taak is gekoppeld. |
| exec_context_id | int | Uitvoeringscontext-ID die aan de taak is gekoppeld. |
| request_id | int | ID van het verzoek voor de taak. Zie sys.dm_exec_requests (Transact-SQL)voor meer informatie. |
| worker_address | varbinary(8) | Het geheugenadres van de werknemer die de taak uitvoert. NULL = De taak wacht ofwel tot een werker kan draaien, of de taak is net klaar met draaien. Voor meer informatie, zie sys.dm_os_workers (Transact-SQL). |
| host_address | varbinary(8) | Geheugenadres van de host. 0 = Hosting werd niet gebruikt om de taak te maken. Dit helpt om de host te identificeren die is gebruikt om deze taak te creëren. Voor meer informatie, zie sys.dm_os_hosts (Transact-SQL). |
| parent_task_address | varbinary(8) | Geheugenadres van de taak die de ouder van het object is. |
| 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.
Voorbeelden
Eén. Monitoring van parallelle verzoeken
Voor verzoeken die parallel worden uitgevoerd, zie je meerdere rijen voor dezelfde combinatie van (<session_id>, <request_id>). Gebruik de volgende query om de optie Serverconfiguratie Configureren voor maximale mate van parallellisme voor alle actieve verzoeken te vinden.
Opmerking
Een request_id is uniek binnen een sessie.
SELECT
task_address,
task_state,
context_switches_count,
pending_io_count,
pending_io_byte_count,
pending_io_byte_average,
scheduler_id,
session_id,
exec_context_id,
request_id,
worker_address,
host_address
FROM sys.dm_os_tasks
ORDER BY session_id, request_id;
B. Sessie-ID's koppelen aan Windows-threads
Je kunt de volgende query gebruiken om een sessie-ID te koppelen aan een Windows-thread-ID. Je kunt vervolgens de prestaties van de thread monitoren in de Windows Performance Monitor. De volgende query geeft geen informatie terug voor sessies die in slaap liggen.
SELECT STasks.session_id, SThreads.os_thread_id
FROM sys.dm_os_tasks AS STasks
INNER JOIN sys.dm_os_threads AS SThreads
ON STasks.worker_address = SThreads.worker_address
WHERE STasks.session_id IS NOT NULL
ORDER BY STasks.session_id;
GO
Zie ook
Dynamische beheerweergaven van SQL Server-besturingssysteem (Transact-SQL)
Thread- en Taakarchitectuurgids