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 System (PDW)
Retourneert informatie over de wachtwachtrij van taken die op een bepaalde resource wachten. Zie de handleiding thread- en taakarchitectuur voor meer informatie over taken.
Opmerking
Gebruik de naam sys.dm_pdw_nodes_os_waiting_tasksom dit aan te roepen vanuit Azure Synapse Analytics of Analytics Platform System (PDW). Deze syntaxis wordt niet ondersteund door een serverloze SQL-pool in Azure Synapse Analytics.
| Kolomnaam | Gegevenstype | Description |
|---|---|---|
waiting_task_address |
varbinary(8) | Adres van de wachttaak. |
session_id |
smallint | Id van de sessie die is gekoppeld aan de taak. |
exec_context_id |
int | Id van de uitvoeringscontext die aan de taak is gekoppeld. |
wait_duration_ms |
bigint | Totale wachttijd voor dit wachttype, in milliseconden. Deze keer is inclusief signal_wait_time. |
wait_type |
nvarchar(60) | Naam van het wachttype. Zie sys.dm_os_wait_stats voor meer informatie. |
resource_address |
varbinary(8) | Adres van de resource waarvoor de taak wacht. |
blocking_task_address |
varbinary(8) | Taak die momenteel deze resource bevat |
blocking_session_id |
smallint | Id van de sessie die de aanvraag blokkeert. Als deze kolom is NULL, wordt de aanvraag niet geblokkeerd of is de sessiegegevens van de blokkerende sessie niet beschikbaar (of kunnen niet worden geïdentificeerd).-2 = De blokkerende resource is eigendom van een zwevende gedistribueerde transactie.-3 = De blokkerende resource is eigendom van een uitgestelde hersteltransactie.-4
=
session_id van de blokkeringseigenaar kan niet worden bepaald vanwege interne vergrendelingsstatusovergangen. |
blocking_exec_context_id |
int | Id van de uitvoeringscontext van de blokkeringstaak. |
resource_description |
nvarchar(3072) | Beschrijving van de resource die wordt gebruikt. Zie de kolom resource_description voor meer informatie. |
pdw_node_id |
int | De id voor het knooppunt waarop deze distributie zich bevindt. Van toepassing op: Azure Synapse Analytics and Analytics Platform System (PDW) |
De resource_description kolom
De resource_description kolom heeft de volgende mogelijke waarden.
Resource-eigenaar van thread-pool
threadpool id=scheduler<hex-address>
Eigenaar van parallelle queryresource
exchangeEvent id={Port|Pipe}<hex-address> WaitType=<exchange-wait-type> nodeId=<exchange-node-id>
Exchange-wait-type
e_waitNonee_waitPipeNewRowe_waitPipeGetRowe_waitSynchronizeConsumerOpene_waitPortOpene_waitPortClosee_waitRange
Resource-eigenaar vergrendelen
<type-specific-description> id=lock<lock-hex-address> mode=<mode> associatedObjectId=<associated-obj-id>
<type-specific-description>kan het volgende zijn:- Voor
DATABASE:databaselock subresource=<databaselock-subresource> dbid=<db-id> - Voor
FILE:filelock fileid=<file-id> subresource=<filelock-subresource> dbid=<db-id> - Voor
OBJECT:objectlock lockPartition=<lock-partition-id> objid=<obj-id> subresource=<objectlock-subresource> dbid=<db-id> - Voor
PAGE:pagelock fileid=<file-id> pageid=<page-id> dbid=<db-id> subresource=<pagelock-subresource> - Voor
Key:keylock hobtid=<hobt-id> dbid=<db-id> - Voor
EXTENT:extentlock fileid=<file-id> pageid=<page-id> dbid=<db-id> - Voor
RID:ridlock fileid=<file-id> pageid=<page-id> dbid=<db-id> - Voor
APPLICATION:applicationlock hash=<hash> databasePrincipalId=<role-id> dbid=<db-id> - Voor
METADATA:metadatalock subresource=<metadata-subresource> classid=<metadatalock-description> dbid=<db-id> - Voor
HOBT:hobtlock hobtid=<hobt-id> subresource=<hobt-subresource> dbid=<db-id> - Voor
ALLOCATION_UNIT:allocunitlock hobtid=<hobt-id> subresource=<alloc-unit-subresource> dbid=<db-id>
- Voor
<mode>kan het volgende zijn:Sch-S, Sch-M, S, U, X, IS, IU, IX, SIU, SIX, UIX, BU, RangeS-S, RangeS-U, RangeI-N, RangeI-S, RangeI-S, RangeI-U, RangeI-X, RangeX-, RangeX-U, RangeX-X
Externe resource-eigenaar
Extern ExternalResource=<wait-type>
Algemene resource-eigenaar
-
TransactionMutexTransactionInfo Workspace=<workspace-id> MutexCLRTaskJoinCLRMonitorEventCLRRWLockEventresourceWait
Eigenaar van vergrendelingsresource
<db-id>:<file-id>:<page-in-file><GUID><latch-class> (<latch-address>)
XACT-resource-eigenaar (transactie)
Treedt op wanneer geoptimaliseerde vergrendeling is ingeschakeld:
-
xactlock:xactlock xdesIdLow=<xdesIdLow> xdesIdHigh=<xdesIdHigh> dbid=<dbid> id=<resource id> mode=<mode> UnderlyingResource (<keylock|ridlock>) hobtId=<hobtId> dbid=<dbid>
Permissions
VOOR SQL Server 2019 (15.x) en eerdere versies is toestemming vereist VIEW SERVER STATE .
SQL Server 2022 (16.x) en latere versies, en SQL Server en Azure SQL Managed Instance, vereisen VIEW SERVER PERFORMANCE STATE toestemming op de server.
Voor servicedoelstellingen van Azure 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##serverfunctie 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.
Voorbeelden
Eén. Taken van geblokkeerde sessies identificeren
SELECT * FROM sys.dm_os_waiting_tasks
WHERE blocking_session_id IS NOT NULL;
B. Wachttaken per verbinding weergeven
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. Wachttaken weergeven voor alle gebruikersprocessen met aanvullende informatie
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