다음을 통해 공유


sys.dm_os_waiting_tasks(Transact-SQL)

특정 리소스에서 대기 중인 태스크의 대기 큐에 대한 정보를 반환합니다.

열 이름

데이터 형식

설명

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>

    • 키의 경우: 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 권한이 필요합니다.