Megosztás a következőn keresztül:


sys.dm_os_waiting_tasks (Transact-SQL)

Vonatkozik a következőkre:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalitikai Platform System (PDW)SQL adatbázis a Microsoft Fabric-ben

Adatokat ad vissza az egyes erőforrásokra várakozó tevékenységek várakozási várólistájáról. A tevékenységekről további információt a Szál és a Feladatarchitektúra útmutatójában talál.

Megjegyzés:

Ha ezt az Azure Synapse Analytics vagy az Analytics Platform System (PDW) szolgáltatásból szeretné meghívni, használja a nevet sys.dm_pdw_nodes_os_waiting_tasks. Ezt a szintaxist az Azure Synapse Analytics kiszolgáló nélküli SQL-készlete nem támogatja.

Oszlop név Adattípus Description
waiting_task_address varbinary(8) A várakozási feladat címe.
session_id smallint A tevékenységhez társított munkamenet azonosítója.
exec_context_id int A tevékenységhez társított végrehajtási környezet azonosítója.
wait_duration_ms bigint A várakozási típus teljes várakozási ideje ezredmásodpercben. Ez az idő magában foglalja a signal_wait_time.
wait_type nvarchar(60) A várakozási típus neve. További információ: sys.dm_os_wait_stats.
resource_address varbinary(8) Annak az erőforrásnak a címe, amelyre a tevékenység várakozik.
blocking_task_address varbinary(8) Az erőforrást jelenleg tartalmazó tevékenység
blocking_session_id smallint A kérést blokkoló munkamenet azonosítója. Ha ez az oszlop, NULLa kérés nem lesz letiltva, vagy a blokkoló munkamenet munkamenet-információi nem érhetők el (vagy nem azonosíthatók).

-2 = A blokkoló erőforrás egy árva elosztott tranzakció tulajdonában van.

-3 = A blokkoló erőforrás egy halasztott helyreállítási tranzakció tulajdonában van.

-4 = session_id a blokkoló retesz tulajdonosa nem határozható meg belső reteszállapot-áttűnések miatt.
blocking_exec_context_id int A blokkoló tevékenység végrehajtási környezetének azonosítója.
resource_description nvarchar(3072) A felhasznált erőforrás leírása. További információ: A resource_description oszlop.
pdw_node_id int Annak a csomópontnak az azonosítója, amelyen ez a disztribúció található.

A következőkre vonatkozik: Azure Synapse Analytics and Analytics Platform System (PDW)

Az resource_description oszlop

Az resource_description oszlop a következő lehetséges értékekkel rendelkezik.

Szálkészlet erőforrás-tulajdonosa

threadpool id=scheduler<hex-address>

Párhuzamos lekérdezési erőforrás tulajdonosa

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

Erőforrás tulajdonosának zárolása

<type-specific-description> id=lock<lock-hex-address> mode=<mode> associatedObjectId=<associated-obj-id>

  • <type-specific-description> lehet:

    • A következőhöz DATABASE: databaselock subresource=<databaselock-subresource> dbid=<db-id>
    • A következőhöz FILE: filelock fileid=<file-id> subresource=<filelock-subresource> dbid=<db-id>
    • A következőhöz OBJECT: objectlock lockPartition=<lock-partition-id> objid=<obj-id> subresource=<objectlock-subresource> dbid=<db-id>
    • A következőhöz PAGE: pagelock fileid=<file-id> pageid=<page-id> dbid=<db-id> subresource=<pagelock-subresource>
    • A következőhöz Key: keylock hobtid=<hobt-id> dbid=<db-id>
    • A következőhöz EXTENT: extentlock fileid=<file-id> pageid=<page-id> dbid=<db-id>
    • A következőhöz RID: ridlock fileid=<file-id> pageid=<page-id> dbid=<db-id>
    • A következőhöz APPLICATION: applicationlock hash=<hash> databasePrincipalId=<role-id> dbid=<db-id>
    • A következőhöz METADATA: metadatalock subresource=<metadata-subresource> classid=<metadatalock-description> dbid=<db-id>
    • A következőhöz HOBT: hobtlock hobtid=<hobt-id> subresource=<hobt-subresource> dbid=<db-id>
    • A következőhöz ALLOCATION_UNIT: allocunitlock hobtid=<hobt-id> subresource=<alloc-unit-subresource> dbid=<db-id>
  • <mode> lehet:

    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

Külső erőforrás tulajdonosa

Külső ExternalResource=<wait-type>

Általános erőforrás-tulajdonos

  • TransactionMutex TransactionInfo Workspace=<workspace-id>
  • Mutex
  • CLRTaskJoin
  • CLRMonitorEvent
  • CLRRWLockEvent
  • resourceWait

Erőforrás-tulajdonos leválasztva

  • <db-id>:<file-id>:<page-in-file>
  • <GUID>
  • <latch-class> (<latch-address>)

XACT (tranzakciós) erőforrás tulajdonosa

Az optimalizált zárolás engedélyezésekor fordul elő:

  • xactlock: xactlock xdesIdLow=<xdesIdLow> xdesIdHigh=<xdesIdHigh> dbid=<dbid> id=<resource id> mode=<mode> UnderlyingResource (<keylock|ridlock>) hobtId=<hobtId> dbid=<dbid>

Permissions

Az SQL Server 2019 (15.x) és a korábbi verziók engedélyhez szükségesek VIEW SERVER STATE .

Az SQL Server 2022 (16.x) és újabb verziói, valamint az SQL Server és az Azure SQL Managed Instance engedélyre van szükségük VIEW SERVER PERFORMANCE STATE a kiszolgálón.

Az Azure SQL Database Alapszintű, S0 és S1 szolgáltatási célkitűzésein, valamint rugalmas készletekben lévő adatbázisok esetében a kiszolgálói rendszergazdai fiókra, a Microsoft Entra rendszergazdai fiókra vagy a ##MS_ServerStateReader##kiszolgálói szerepkör tagságára van szükség. Az SQL Database szolgáltatás minden más célkitűzéséhez vagy az adatbázis VIEW DATABASE STATE engedélyére, vagy a ##MS_ServerStateReader## kiszolgálói szerepkör tagságára van szükség.

Példák

A. A letiltott munkamenetekből származó tevékenységek azonosítása

SELECT * FROM sys.dm_os_waiting_tasks
WHERE blocking_session_id IS NOT NULL;

B. Várakozási feladatok megtekintése kapcsolatonként

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. Az összes felhasználói folyamat várakozási feladatainak megtekintése további információkkal

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