Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
              gäller för:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
Returnerar information om väntekön med uppgifter som väntar på en resurs. Mer information om aktiviteter finns i guiden Tråd- och aktivitetsarkitektur.
Anmärkning
Om du vill anropa detta från Azure Synapse Analytics eller Analytics Platform System (PDW) använder du namnet sys.dm_pdw_nodes_os_waiting_tasks. Den här syntaxen stöds inte av en serverlös SQL-pool i Azure Synapse Analytics.
| Kolumnnamn | Datatyp | Description | 
|---|---|---|
| waiting_task_address | varbinary(8) | Adressen till den väntande uppgiften. | 
| session_id | smallint | ID för sessionen som är associerad med uppgiften. | 
| exec_context_id | int | ID för körningskontexten som är associerad med uppgiften. | 
| wait_duration_ms | bigint | Total väntetid för den här väntetypen i millisekunder. Den här gången ingår signal_wait_time. | 
| wait_type | nvarchar(60) | Namnet på väntetypen. Mer information finns i sys.dm_os_wait_stats. | 
| resource_address | varbinary(8) | Adressen till den resurs som aktiviteten väntar på. | 
| blocking_task_address | varbinary(8) | Uppgift som för närvarande innehåller den här resursen | 
| blocking_session_id | smallint | ID för sessionen som blockerar begäran. Om den här kolumnen är NULLblockeras inte begäran eller sessionsinformationen för den blockerande sessionen är inte tillgänglig (eller kan inte identifieras).-2= Den blockerande resursen ägs av en överbliven distribuerad transaktion.-3= Den blockerande resursen ägs av en uppskjuten återställningstransaktion.-4=session_idav den blockerande låsägaren kunde inte fastställas på grund av interna spärrtillståndsövergångar. | 
| blocking_exec_context_id | int | ID för körningskontexten för den blockerande uppgiften. | 
| resource_description | nvarchar(3072) | Beskrivning av resursen som förbrukas. Mer information finns i kolumnen resource_description. | 
| pdw_node_id | int | Identifieraren för noden som den här fördelningen är på. Gäller för: Azure Synapse Analytics and Analytics Platform System (PDW) | 
Kolumnen resource_description
Kolumnen resource_description har följande möjliga värden.
Resursägare för trådpool
threadpool id=scheduler<hex-address>
Resursägare för parallell fråga
exchangeEvent id={Port|Pipe}<hex-address> WaitType=<exchange-wait-type> nodeId=<exchange-node-id>
Exchange-wait-type
- e_waitNone
- e_waitPipeNewRow
- e_waitPipeGetRow
- e_waitSynchronizeConsumerOpen
- e_waitPortOpen
- e_waitPortClose
- e_waitRange
Lås resursägare
<type-specific-description> id=lock<lock-hex-address> mode=<mode> associatedObjectId=<associated-obj-id>
- <type-specific-description>kan vara:- För DATABASE:databaselock subresource=<databaselock-subresource> dbid=<db-id>
- För FILE:filelock fileid=<file-id> subresource=<filelock-subresource> dbid=<db-id>
- För OBJECT:objectlock lockPartition=<lock-partition-id> objid=<obj-id> subresource=<objectlock-subresource> dbid=<db-id>
- För PAGE:pagelock fileid=<file-id> pageid=<page-id> dbid=<db-id> subresource=<pagelock-subresource>
- För Key:keylock hobtid=<hobt-id> dbid=<db-id>
- För EXTENT:extentlock fileid=<file-id> pageid=<page-id> dbid=<db-id>
- För RID:ridlock fileid=<file-id> pageid=<page-id> dbid=<db-id>
- För APPLICATION:applicationlock hash=<hash> databasePrincipalId=<role-id> dbid=<db-id>
- För METADATA:metadatalock subresource=<metadata-subresource> classid=<metadatalock-description> dbid=<db-id>
- För HOBT:hobtlock hobtid=<hobt-id> subresource=<hobt-subresource> dbid=<db-id>
- För ALLOCATION_UNIT:allocunitlock hobtid=<hobt-id> subresource=<alloc-unit-subresource> dbid=<db-id>
 
- För 
- <mode>kan vara:- Sch-S, Sch-M, S, U, X, IS, IU, IX, SIU, SIX, UIX, BU, RangeS-S, RangeS-U, RangeI-N, RangeI-S, RangeI-U, RangeI-X, RangeX-, RangeX-U, RangeX-X 
Extern resursägare
Extern ExternalResource=<wait-type>
Allmän resursägare
- 
              TransactionMutexTransactionInfo Workspace=<workspace-id>
- Mutex
- CLRTaskJoin
- CLRMonitorEvent
- CLRRWLockEvent
- resourceWait
Spärrresursägare
- <db-id>:<file-id>:<page-in-file>
- <GUID>
- <latch-class> (<latch-address>)
XACT-resursägare (transaktion)
Inträffar när optimerad låsning är aktiverad :
- 
              xactlock:xactlock xdesIdLow=<xdesIdLow> xdesIdHigh=<xdesIdHigh> dbid=<dbid> id=<resource id> mode=<mode> UnderlyingResource (<keylock|ridlock>) hobtId=<hobtId> dbid=<dbid>
Permissions
SQL Server 2019 (15.x) och tidigare versioner kräver VIEW SERVER STATE behörighet.
SQL Server 2022 (16.x) och senare versioner samt SQL Server och Azure SQL Managed Instance kräver VIEW SERVER PERFORMANCE STATE behörighet på servern.
I tjänstmålen för Azure SQL Database Basic, S0 och S1 och för databaser i elastiska pooler krävs serveradministratörskontot, Microsoft Entra-administratörskontot eller medlemskap i serverrollen##MS_ServerStateReader##. 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.
Examples
A. Identifiera uppgifter från blockerade sessioner
SELECT * FROM sys.dm_os_waiting_tasks
WHERE blocking_session_id IS NOT NULL;
B. Visa väntande uppgifter per anslutning
SELECT st.text AS [SQL Text],
       c.connection_id,
       w.session_id,
       w.wait_duration_ms,
       w.wait_type,
       w.resource_address,
       w.blocking_session_id,
       w.resource_description,
       c.client_net_address,
       c.connect_time
FROM sys.dm_os_waiting_tasks AS w
     INNER JOIN sys.dm_exec_connections AS c
         ON w.session_id = c.session_id
CROSS APPLY (SELECT *
             FROM sys.dm_exec_sql_text(c.most_recent_sql_handle)) AS st
WHERE w.session_id > 50
      AND w.wait_duration_ms > 0
ORDER BY c.connection_id, w.session_id;
GO
C. Visa väntande uppgifter för alla användarprocesser med ytterligare information
SELECT 'Waiting_tasks' AS [Information],
       owt.session_id,
       owt.wait_duration_ms,
       owt.wait_type,
       owt.blocking_session_id,
       owt.resource_description,
       es.program_name,
       est.text,
       est.dbid,
       eqp.query_plan,
       er.database_id,
       es.cpu_time,
       es.memory_usage * 8 AS memory_usage_KB
FROM sys.dm_os_waiting_tasks AS owt
     INNER JOIN sys.dm_exec_sessions AS es
         ON owt.session_id = es.session_id
     INNER JOIN sys.dm_exec_requests AS er
         ON es.session_id = er.session_id
OUTER APPLY sys.dm_exec_sql_text(er.sql_handle) AS est
OUTER APPLY sys.dm_exec_query_plan(er.plan_handle) AS eqp
WHERE es.is_user_process = 1
ORDER BY owt.session_id;
GO