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 권한이 필요합니다.