sys.dm_os_waiting_tasks (Transact-SQL)

返回有关正在等待某些资源的任务的等待队列的信息。

适用范围:SQL Server(SQL Server 2008 到当前版本)。

列名

数据类型

说明

waiting_task_address

varbinary(8)

等待任务的地址。

session_id

smallint

与任务关联的会话的 ID。

exec_context_id

int

与任务关联的执行上下文的 ID。

wait_duration_ms

int

此等待类型的总等待时间(毫秒)。 此时间包含 signal_wait_time

wait_type

nvarchar(60)

等待类型的名称。

resource_address

varbinary(8)

任务等待的资源的地址。

blocking_task_address

varbinary(8)

当前持有此资源的任务。

blocking_session_id

smallint

正在阻塞请求的会话的 ID。 如果此列为 NULL,则表示请求未被阻塞,或锁定会话的会话信息不可用(或无法进行标识)。

-2 = 阻塞资源由孤立的分布式事务拥有。

-3 = 阻塞资源由延迟的恢复事务拥有。

-4 = 由于内部闩锁状态转换而无法确定阻塞闩锁所有者的会话 ID。

blocking_exec_context_id

int

正在阻塞的任务的执行上下文 ID。

resource_description

nvarchar(1024)

对正在占用的资源的说明。 有关详细信息,请参阅下面的列表。

resource_description 列

resource_description 列具有以下可能值。

线程池资源所有者:

  • threadpool id=scheduler<hex-address>

并行查询资源所有者:

  • 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

锁资源所有者:

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

    <type-specific-description> 可以是:

    • 对于 DATABASE:databaselock subresource=<databaselock-subresource> dbid=<db-id>

    • 对于 FILE:filelock fileid=<file-id> subresource=<filelock-subresource> dbid=<db-id>

    • 对于 OBJECT:objectlock lockPartition=<lock-partition-id> objid=<obj-id> subresource=<objectlock-subresource> dbid=<db-id>

    • 对于 PAGE:pagelock fileid=<file-id> pageid=<page-id> dbid=<db-id> subresource=<pagelock-subresource>

    • 对于 Key:keylock hobtid=<hobt-id> dbid=<db-id>

    • 对于 EXTENT:extentlock fileid=<file-id> pageid=<page-id> dbid=<db-id>

    • 对于 RID:ridlock fileid=<file-id> pageid=<page-id> dbid=<db-id>

    • 对于 APPLICATION:applicationlock hash=<hash> databasePrincipalId=<role-id> dbid=<db-id>

    • 对于 METADATA:metadatalock subresource=<metadata-subresource> classid=<metadatalock-description> dbid=<db-id>

    • 对于 HOBT:hobtlock hobtid=<hobt-id> subresource=<hobt-subresource> dbid=<db-id>

    • 对于 ALLOCATION_UNIT:allocunitlock hobtid=<hobt-id> subresource=<alloc-unit-subresource> dbid=<db-id>

    <mode> 可以是:

    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

外部资源所有者:

  • External ExternalResource=<wait-type>

常规资源所有者:

  • TransactionMutex TransactionInfo Workspace=<workspace-id>

  • Mutex

  • CLRTaskJoin

  • CLRMonitorEvent

  • CLRRWLockEvent

  • resourceWait

闩锁资源所有者:

  • <db-id>:<file-id>:<page-in-file>

  • <GUID>

  • <latch-class> (<latch-address>)

权限

要求对服务器拥有 VIEW SERVER STATE 权限。

请参阅

参考

动态管理视图和函数 (Transact-SQL)

与 SQL Server 操作系统相关的动态管理视图 (Transact-SQL)