다음을 통해 공유


sys.dm_tran_locks(Transact-SQL)

SQL Server 2008 R2에서 현재 활성 상태인 잠금 관리자 리소스에 대한 정보를 반환합니다. 각 행은 이미 허용된 잠금 또는 허용 대기 중인 잠금에 대해 현재 활성 상태인 잠금 관리자 요청을 나타냅니다.

결과 집합의 열은 리소스와 요청의 두 기본 그룹으로 나뉩니다. 리소스 그룹은 잠금이 요청된 리소스를 설명하고 요청 그룹은 잠금 요청을 설명합니다.

열 이름

데이터 형식

설명

resource_type

nvarchar(60)

리소스 유형을 나타냅니다. 이 값은 DATABASE, FILE, OBJECT, PAGE, KEY, EXTENT, RID, APPLICATION, METADATA, HOBT 또는 ALLOCATION_UNIT 중 하나일 수 있습니다.

resource_subtype

nvarchar(60)

resource_type의 하위 유형을 나타냅니다. 부모 유형의 하위 유형이 아닌 유형을 잠그지 않고 하위 유형 잠금을 획득할 수 있습니다. 개별 하위 유형은 서로 충돌하지 않으며 하위 유형이 아닌 부모 유형과도 충돌하지 않습니다. 모든 리소스 유형에 하위 유형이 있는 것은 아닙니다.

resource_database_id

int

이 리소스의 범위를 한정하는 데이터베이스의 ID입니다. 잠금 관리자로 처리되는 모든 리소스의 범위는 데이터베이스 ID로 결정됩니다.

resource_description

nvarchar(256)

다른 리소스 열에서 사용할 수 없는 정보만 포함하는 리소스 설명입니다.

resource_associated_entity_id

bigint

리소스가 연결된 데이터베이스 내의 엔터티 ID입니다. 리소스 유형에 따라 개체 ID, Hobt ID 또는 할당 단위 ID가 될 수 있습니다.

resource_lock_partition

Int

분할된 잠금 리소스의 잠금 파티션 ID입니다. 분할되지 않은 잠금 리소스의 경우 이 값은 0입니다.

request_mode

nvarchar(60)

요청 모드입니다. 허용된 요청의 경우 허용 모드이고 대기 중인 요청의 경우에는 요청 중인 모드가 됩니다.

request_type

nvarchar(60)

요청 유형입니다. 값은 LOCK입니다.

request_status

nvarchar(60)

이 요청의 현재 상태입니다. 가능한 값은 GRANTED, CONVERT 또는 WAIT입니다.

request_reference_count

smallint

동일한 요청자가 이 리소스를 요청한 횟수의 근사 값을 반환합니다.

request_lifetime

int

정보를 제공하기 위해서만 확인됩니다. 지원되지 않습니다. 향후 호환성은 보장되지 않습니다.

request_session_id

int

현재 이 요청을 소유한 세션 ID입니다. 분산 트랜잭션 및 바운드 트랜잭션의 소유 세션 ID를 변경할 수 있습니다. 값이 -2인 경우 요청이 분리된 분산 트랜잭션에 속함을 나타냅니다. 값이 -3인 경우 성공적으로 롤백할 수 없기 때문에 복구 시 롤백이 지연된 트랜잭션과 같이 지연된 복구 트랜잭션에 요청이 속함을 나타냅니다.

request_exec_context_id

int

현재 이 요청을 소유하는 프로세스의 실행 컨텍스트 ID입니다.

request_request_id

int

현재 이 요청을 소유하는 프로세스의 요청 ID(일괄 처리 ID)입니다. 이 값은 트랜잭션의 활성 MARS(Multiple Active Result Set) 연결이 변경될 때마다 달라집니다.

request_owner_type

nvarchar(60)

요청을 소유하는 엔터티 유형입니다. 다양한 엔터티가 잠금 관리자 요청을 소유할 수 있습니다. 가능한 값은 아래와 같습니다.

TRANSACTION = 트랜잭션이 요청을 소유합니다.

CURSOR = 커서가 요청을 소유합니다.

SESSION = 사용자 세션이 요청을 소유합니다.

SHARED_TRANSACTION_WORKSPACE = 트랜잭션 작업 영역 중 공유 부분이 요청을 소유합니다.

EXCLUSIVE_TRANSACTION_WORKSPACE = 트랜잭션 작업 영역 중 배타 부분이 요청을 소유합니다.

참고참고
참여한 세션에 대해 잠금을 유지하기 위해 작업 공간이 내부적으로 사용됩니다.

request_owner_id

bigint

이 요청의 특정 소유자 ID입니다. 이 값이 트랜잭션 ID인 트랜잭션에만 사용됩니다.

request_owner_guid

uniqueidentifier

이 요청의 특정 소유자 GUID입니다. 이 값이 트랜잭션의 MS DTC GUID와 일치하는 분산 트랜잭션에만 사용됩니다.

request_owner_lockspace_id

nvarchar(32)

정보를 제공하기 위해서만 확인됩니다. 지원되지 않습니다. 향후 호환성은 보장되지 않습니다. 이 값은 요청자의 잠금 공간 ID를 나타냅니다. 잠금 공간 ID는 두 요청자가 서로 충돌하지 않는지, 그리고 서로 충돌할 수 있는 모드의 경우 두 요청자에게 잠금을 허용할 수 있는지 여부를 결정합니다.

lock_owner_address

varbinary(8)

이 요청을 추적하는 데 사용되는 내부 데이터 구조의 메모리 주소입니다. 이 열은 sys.dm_os_waiting_tasksresource_address 열과 조인할 수 있습니다.

사용 권한

서버에 대한 VIEW SERVER STATE 권한이 필요합니다.

주의

허용된 요청 상태는 요청자에게 리소스에 대한 잠금이 허용되었음을 나타냅니다. 대기 중인 요청은 해당 요청이 아직 허용되지 않았음을 나타냅니다. request_status 열에서 반환되는 대기 중인 요청 유형은 다음과 같습니다.

  • 변환 요청 상태는 리소스에 대한 요청이 이미 허용되었으며 초기 요청에 대한 업그레이드가 현재 허용 대기 상태에 있음을 나타냅니다.

  • 대기 요청 상태는 리소스에 대한 요청이 아직 허용되지 않았음을 나타냅니다.

sys.dm_tran_locks는 잠금 관리자의 내부 데이터 구조에서 채워지므로 이 정보를 유지하더라도 일반적인 처리 작업에 오버헤드가 추가로 발생하지 않습니다. 뷰를 구체화하려면 잠금 관리자 내부 데이터 구조에 액세스해야 하므로 서버의 정상적인 처리에 사소한 영향을 줄 수 있습니다. 그러나 그 영향은 무시할 만한 수준이며 매우 많이 사용되는 리소스에만 영향을 미칩니다. 이 뷰의 데이터는 잠금 관리자의 현재 상태에 따라 달라지기 때문에 언제든지 변경될 수 있으며 잠금을 획득하고 해제할 때마다 행이 추가되거나 제거됩니다. 이 뷰에는 기록 정보가 없습니다.

위의 두 요청은 리소스 열과 그룹 열이 모두 같은 경우에만 동일한 리소스에 대해 작동합니다.

다음 도구를 사용하여 읽기 작업의 잠금을 제어할 수 있습니다.

  • SET TRANSACTION ISOLATION LEVEL을 사용하여 세션의 잠금 수준을 지정합니다. 자세한 내용은 SET TRANSACTION ISOLATION LEVEL(Transact-SQL)를 참조하십시오.

  • FROM 절에서 테이블 잠금 힌트를 사용하여 테이블의 개별 참조에 대한 잠금 수준을 지정합니다. 구문 및 제한 사항에 대해서는 테이블 힌트(Transact-SQL)를 참조하십시오.

한 세션 ID로 실행되는 리소스에 둘 이상의 잠금을 허용할 수 있습니다. 한 세션에서 실행되는 서로 다른 엔터티는 각각 동일한 리소스에 대한 잠금을 소유할 수 있으며 이 정보는 sys.dm_tran_locks에서 반환되는 request_owner_typerequest_owner_id 열에 표시됩니다. 동일한 request_owner_type이 여러 개 있는 경우에는 request_owner_id 열을 사용하여 각 항목을 구분합니다. 분산 트랜잭션에서는 request_owner_typerequest_owner_guid 열에 다양한 엔터티 정보가 표시됩니다.

예를 들어 세션 S1이 Table1에 대한 공유 잠금을 소유하고 세션 S1에서 실행되는 트랜잭션 T1도 Table1에 대한 공유 잠금을 소유한다고 가정합니다. 이 경우 sys.dm_tran_locks에서 반환되는 resource_description 열에는 두 개의 동일한 리소스가 표시됩니다. request_owner_type 열에서 한 항목은 세션으로 표시되고 다른 항목은 트랜잭션으로 표시됩니다. 또한 resource_owner_id 열의 값도 서로 다릅니다.

한 세션에서 실행되는 여러 커서는 서로 구분되지 않으므로 하나의 엔터티로 간주됩니다.

SQL Server 데이터베이스 엔진에서 사용되는 잠금 유형에 대한 자세한 내용은 데이터베이스 엔진에서의 잠금을 참조하십시오.

세션 ID 값과 연결되지 않은 분산 트랜잭션은 분리된 트랜잭션이며 -2의 세션 ID 값이 할당됩니다. 자세한 내용은 KILL(Transact-SQL)을 참조하십시오.

리소스 정보

다음 표에서는 resource_associated_entity_id 열에 표시되는 리소스를 나열합니다.

리소스 유형

리소스 설명

Resource_associated_entity_id

DATABASE

데이터베이스를 나타냅니다.

해당 사항 없음

FILE

데이터베이스 파일을 나타냅니다. 이 파일은 데이터 또는 로그 파일일 수 있습니다.

해당 사항 없음

OBJECT

데이터베이스 개체를 나타냅니다. 이 개체는 데이터 테이블, 뷰, 저장 프로시저, 확장 저장 프로시저 또는 개체 ID가 있는 모든 개체일 수 있습니다.

개체 ID입니다.

PAGE

데이터 파일 내의 단일 페이지를 나타냅니다.

HoBt ID입니다. 이 값은 sys.partitions.hobt_id에 해당합니다. HoBt ID는 호출자가 제공할 수 있는 추가 정보이지만 모든 호출자가 이 정보를 제공할 수 있는 것은 아니기 때문에 PAGE 리소스에 대해 항상 HoBt ID를 사용할 수 있는 것은 아닙니다.

KEY

인덱스의 행을 나타냅니다.

HoBt ID입니다. 이 값은 sys.partitions.hobt_id에 해당합니다.

EXTENT

데이터 파일 익스텐트를 나타냅니다. 익스텐트는 8개의 연속 페이지 그룹입니다.

해당 사항 없음

RID

힙의 물리적 행을 나타냅니다.

HoBt ID입니다. 이 값은 sys.partitions.hobt_id에 해당합니다. HoBt ID는 호출자가 제공할 수 있는 추가 정보이지만 모든 호출자가 이 정보를 제공할 수 있는 것은 아니기 때문에 RID 리소스에 대해 항상 HoBt ID를 사용할 수 있는 것은 아닙니다.

APPLICATION

응용 프로그램이 지정한 리소스를 나타냅니다.

해당 사항 없음

METADATA

메타데이터 정보를 나타냅니다.

해당 사항 없음

HOBT

힙 또는 B-트리를 나타냅니다. 기본 액세스 경로 구조입니다.

HoBt ID입니다. 이 값은 sys.partitions.hobt_id에 해당합니다.

ALLOCATION_UNIT

인덱스 파티션과 같은 관련 페이지의 집합을 나타냅니다. 각 할당 단위는 단일 IAM(Index Allocation Map) 체인을 처리합니다.

할당 단위 ID입니다. 이 값은 sys.allocation_units.allocation_unit_id에 해당합니다.

다음 표에서는 각 리소스 유형에 연결된 하위 유형을 나열합니다.

ResourceSubType

동기화

ALLOCATION_UNIT.BULK_OPERATION_PAGE

대량 작업에 사용되는 미리 할당된 페이지를 동기화합니다.

ALLOCATION_UNIT.PAGE_COUNT

지연된 삭제 작업 중 할당 단위 페이지 수 통계를 동기화합니다.

DATABASE.BULKOP_BACKUP_DB

데이터베이스 백업과 대량 작업을 동기화합니다.

DATABASE.BULKOP_BACKUP_LOG

데이터베이스 로그 백업과 대량 작업을 동기화합니다.

DATABASE.CHANGE_TRACKING_CLEANUP

변경 내용 추적 정리 태스크를 동기화합니다

DATABASE.CT_DDL

데이터베이스 및 테이블 수준 변경 내용 추적 DDL 작업을 동기화합니다.

DATABASE.CONVERSATION_PRIORITY

CREATE BROKER PRIORITY와 같은 Service Broker 변환 우선 순위 작업을 동기화합니다.

DATABASE.DDL

DDL(데이터 정의 언어) 작업을 파일 그룹 작업(예: 삭제)과 동기화합니다.

DATABASE.ENCRYPTION_SCAN

TDE 암호화 동기화를 수행합니다.

DATABASE.PLANGUIDE

계획 지침 동기화를 수행합니다.

DATABASE.RESOURCE_GOVERNOR_DDL

리소스 관리자 작업에 대한 DDL 작업(예: ALTER RESOURCE POOL)을 동기화합니다.

DATABASE.SHRINK

데이터베이스 축소 작업을 동기화합니다.

DATABASE.STARTUP

데이터베이스 시작 동기화에 사용합니다.

FILE.SHRINK

파일 축소 작업을 동기화합니다.

HOBT.BULK_OPERATION

힙 최적화 대량 로드 작업과 동시 검색을 동기화합니다. 이 작업은 행 버전 관리를 사용한 스냅숏, 커밋되지 않은 읽기 및 커밋된 읽기의 격리 수준에서 수행됩니다.

HOBT.INDEX_REORGANIZE

힙 또는 인덱스 재구성 작업을 동기화합니다.

OBJECT.COMPILE

저장 프로시저 컴파일을 동기화합니다.

OBJECT.INDEX_OPERATION

인덱스 작업을 동기화합니다.

OBJECT.UPDSTATS

테이블의 통계 업데이트를 동기화합니다.

METADATA.ASSEMBLY

정보를 제공하기 위해서만 확인됩니다. 지원되지 않습니다. 향후 호환성은 보장되지 않습니다.

METADATA.ASSEMBLY_CLR_NAME

정보를 제공하기 위해서만 확인됩니다. 지원되지 않습니다. 향후 호환성은 보장되지 않습니다.

METADATA.ASSEMBLY_TOKEN

정보를 제공하기 위해서만 확인됩니다. 지원되지 않습니다. 향후 호환성은 보장되지 않습니다.

METADATA.ASYMMETRIC_KEY

정보를 제공하기 위해서만 확인됩니다. 지원되지 않습니다. 향후 호환성은 보장되지 않습니다.

METADATA.AUDIT

정보를 제공하기 위해서만 확인됩니다. 지원되지 않습니다. 향후 호환성은 보장되지 않습니다.

METADATA.AUDIT_ACTIONS

정보를 제공하기 위해서만 확인됩니다. 지원되지 않습니다. 향후 호환성은 보장되지 않습니다.

METADATA.AUDIT_SPECIFICATION

정보를 제공하기 위해서만 확인됩니다. 지원되지 않습니다. 향후 호환성은 보장되지 않습니다.

METADATA.CERTIFICATE

정보를 제공하기 위해서만 확인됩니다. 지원되지 않습니다. 향후 호환성은 보장되지 않습니다.

METADATA.CHILD_INSTANCE

정보를 제공하기 위해서만 확인됩니다. 지원되지 않습니다. 향후 호환성은 보장되지 않습니다.

METADATA.COMPRESSED_FRAGMENT

정보를 제공하기 위해서만 확인됩니다. 지원되지 않습니다. 향후 호환성은 보장되지 않습니다.

METADATA.CONVERSTATION_ENDPOINT_RECV

정보를 제공하기 위해서만 확인됩니다. 지원되지 않습니다. 향후 호환성은 보장되지 않습니다.

METADATA.CONVERSTATION_ENDPOINT_SEND

정보를 제공하기 위해서만 확인됩니다. 지원되지 않습니다. 향후 호환성은 보장되지 않습니다.

METADATA.CONVERSATION_GROUP

정보를 제공하기 위해서만 확인됩니다. 지원되지 않습니다. 향후 호환성은 보장되지 않습니다.

METADATA.CONVERSATION_PRIORITY

정보를 제공하기 위해서만 확인됩니다. 지원되지 않습니다. 향후 호환성은 보장되지 않습니다.

METADATA.CREDENTIAL

정보를 제공하기 위해서만 확인됩니다. 지원되지 않습니다. 향후 호환성은 보장되지 않습니다.

METADATA.CRYPTOGRAPHIC_PROVIDER

정보를 제공하기 위해서만 확인됩니다. 지원되지 않습니다. 향후 호환성은 보장되지 않습니다.

METADATA.DATA_SPACE

정보를 제공하기 위해서만 확인됩니다. 지원되지 않습니다. 향후 호환성은 보장되지 않습니다.

METADATA.DATABASE

정보를 제공하기 위해서만 확인됩니다. 지원되지 않습니다. 향후 호환성은 보장되지 않습니다.

METADATA.DATABASE_PRINCIPAL

정보를 제공하기 위해서만 확인됩니다. 지원되지 않습니다. 향후 호환성은 보장되지 않습니다.

METADATA.DB_MIRRORING_SESSION

정보를 제공하기 위해서만 확인됩니다. 지원되지 않습니다. 향후 호환성은 보장되지 않습니다.

METADATA.DB_MIRRORING_WITNESS

정보를 제공하기 위해서만 확인됩니다. 지원되지 않습니다. 향후 호환성은 보장되지 않습니다.

METADATA.DB_PRINCIPAL_SID

정보를 제공하기 위해서만 확인됩니다. 지원되지 않습니다. 향후 호환성은 보장되지 않습니다.

METADATA.ENDPOINT

정보를 제공하기 위해서만 확인됩니다. 지원되지 않습니다. 향후 호환성은 보장되지 않습니다.

METADATA.ENDPOINT_WEBMETHOD

정보를 제공하기 위해서만 확인됩니다. 지원되지 않습니다. 향후 호환성은 보장되지 않습니다.

METADATA.EXPR_COLUMN

정보를 제공하기 위해서만 확인됩니다. 지원되지 않습니다. 향후 호환성은 보장되지 않습니다.

METADATA.EXPR_HASH

정보를 제공하기 위해서만 확인됩니다. 지원되지 않습니다. 향후 호환성은 보장되지 않습니다.

METADATA.FULLTEXT_CATALOG

정보를 제공하기 위해서만 확인됩니다. 지원되지 않습니다. 향후 호환성은 보장되지 않습니다.

METADATA.FULLTEXT_INDEX

정보를 제공하기 위해서만 확인됩니다. 지원되지 않습니다. 향후 호환성은 보장되지 않습니다.

METADATA.FULLTEXT_STOPLIST

정보를 제공하기 위해서만 확인됩니다. 지원되지 않습니다. 향후 호환성은 보장되지 않습니다.

METADATA.INDEX_EXTENSION_SCHEME

정보를 제공하기 위해서만 확인됩니다. 지원되지 않습니다. 향후 호환성은 보장되지 않습니다.

METADATA.INDEXSTATS

정보를 제공하기 위해서만 확인됩니다. 지원되지 않습니다. 향후 호환성은 보장되지 않습니다.

METADATA.INSTANTIATED_TYPE_HASH

정보를 제공하기 위해서만 확인됩니다. 지원되지 않습니다. 향후 호환성은 보장되지 않습니다.

METADATA.MESSAGE

정보를 제공하기 위해서만 확인됩니다. 지원되지 않습니다. 향후 호환성은 보장되지 않습니다.

METADATA.METADATA_CACHE

정보를 제공하기 위해서만 확인됩니다. 지원되지 않습니다. 향후 호환성은 보장되지 않습니다.

METADATA.PARTITION_FUNCTION

정보를 제공하기 위해서만 확인됩니다. 지원되지 않습니다. 향후 호환성은 보장되지 않습니다.

METADATA.PASSWORD_POLICY

정보를 제공하기 위해서만 확인됩니다. 지원되지 않습니다. 향후 호환성은 보장되지 않습니다.

METADATA.PERMISSIONS

정보를 제공하기 위해서만 확인됩니다. 지원되지 않습니다. 향후 호환성은 보장되지 않습니다.

METADATA.PLAN_GUIDE

정보를 제공하기 위해서만 확인됩니다. 지원되지 않습니다. 향후 호환성은 보장되지 않습니다.

METADATA.PLAN_GUIDE_HASH

정보를 제공하기 위해서만 확인됩니다. 지원되지 않습니다. 향후 호환성은 보장되지 않습니다.

METADATA.PLAN_GUIDE_SCOPE

정보를 제공하기 위해서만 확인됩니다. 지원되지 않습니다. 향후 호환성은 보장되지 않습니다.

METADATA.QNAME

정보를 제공하기 위해서만 확인됩니다. 지원되지 않습니다. 향후 호환성은 보장되지 않습니다.

METADATA.QNAME_HASH

정보를 제공하기 위해서만 확인됩니다. 지원되지 않습니다. 향후 호환성은 보장되지 않습니다.

METADATA.REMOTE_SERVICE_BINDING

정보를 제공하기 위해서만 확인됩니다. 지원되지 않습니다. 향후 호환성은 보장되지 않습니다.

METADATA.ROUTE

정보를 제공하기 위해서만 확인됩니다. 지원되지 않습니다. 향후 호환성은 보장되지 않습니다.

METADATA.SCHEMA

정보를 제공하기 위해서만 확인됩니다. 지원되지 않습니다. 향후 호환성은 보장되지 않습니다.

METADATA.SECURITY_CACHE

정보를 제공하기 위해서만 확인됩니다. 지원되지 않습니다. 향후 호환성은 보장되지 않습니다.

METADATA.SECURITY_DESCRIPTOR

정보를 제공하기 위해서만 확인됩니다. 지원되지 않습니다. 향후 호환성은 보장되지 않습니다.

METADATA.SEQUENCE

정보를 제공하기 위해서만 확인됩니다. 지원되지 않습니다. 향후 호환성은 보장되지 않습니다.

METADATA.SERVER_EVENT_SESSIONS

정보를 제공하기 위해서만 확인됩니다. 지원되지 않습니다. 향후 호환성은 보장되지 않습니다.

METADATA.SERVER_PRINCIPAL

정보를 제공하기 위해서만 확인됩니다. 지원되지 않습니다. 향후 호환성은 보장되지 않습니다.

METADATA.SERVICE

정보를 제공하기 위해서만 확인됩니다. 지원되지 않습니다. 향후 호환성은 보장되지 않습니다.

METADATA.SERVICE_BROKER_GUID

정보를 제공하기 위해서만 확인됩니다. 지원되지 않습니다. 향후 호환성은 보장되지 않습니다.

METADATA.SERVICE_CONTRACT

정보를 제공하기 위해서만 확인됩니다. 지원되지 않습니다. 향후 호환성은 보장되지 않습니다.

METADATA.SERVICE_MESSAGE_TYPE

정보를 제공하기 위해서만 확인됩니다. 지원되지 않습니다. 향후 호환성은 보장되지 않습니다.

METADATA.STATS

정보를 제공하기 위해서만 확인됩니다. 지원되지 않습니다. 향후 호환성은 보장되지 않습니다.

METADATA.SYMMETRIC_KEY

정보를 제공하기 위해서만 확인됩니다. 지원되지 않습니다. 향후 호환성은 보장되지 않습니다.

METADATA.USER_TYPE

정보를 제공하기 위해서만 확인됩니다. 지원되지 않습니다. 향후 호환성은 보장되지 않습니다.

METADATA.XML_COLLECTION

정보를 제공하기 위해서만 확인됩니다. 지원되지 않습니다. 향후 호환성은 보장되지 않습니다.

METADATA.XML_COMPONENT

정보를 제공하기 위해서만 확인됩니다. 지원되지 않습니다. 향후 호환성은 보장되지 않습니다.

METADATA.XML_INDEX_QNAME

정보를 제공하기 위해서만 확인됩니다. 지원되지 않습니다. 향후 호환성은 보장되지 않습니다.

다음 표에서는 각 리소스 유형에 대한 resource_description 열의 형식을 제공합니다.

리소스

형식

설명

DATABASE

해당 사항 없음

이미 resource_database_id 열에서 사용할 수 있는 데이터베이스 ID입니다.

FILE

<file_id>

이 리소스가 나타내는 파일의 ID입니다.

OBJECT

<object_id>

이 리소스가 나타내는 개체의 ID입니다. 테이블뿐만 아니라 sys.objects에 나열된 모든 개체일 수 있습니다.

PAGE

<file_id>:<page_in_file>

이 리소스가 나타내는 페이지의 파일 및 페이지 ID를 나타냅니다.

KEY

<hash_value>

이 리소스가 나타내는 행에서 키 열의 해시를 나타냅니다.

EXTENT

<file_id>:<page_in_files>

이 리소스가 나타내는 익스텐트의 파일 및 페이지 ID를 나타냅니다. 익스텐트 ID는 익스텐트에서 첫 페이지의 페이지 ID와 같습니다.

RID

<file_id>:<page_in_file>:<row_on_page>

이 리소스가 나타내는 행의 페이지 ID와 행 ID를 나타냅니다. 연결된 개체 ID가 99인 경우 이 리소스는 IAM 체인의 첫 IAM 페이지에 있는 8개의 혼합 페이지 슬롯 중 하나를 나타냅니다.

APPLICATION

<DbPrincipalId>:<upto 32 characters>:(<hash_value>)

이 응용 프로그램 잠금 리소스의 범위를 한정하는 데 사용된 데이터베이스 보안 주체의 ID를 나타냅니다. 또한 이 응용 프로그램 잠금 리소스에 해당하는 리소스 문자열에서 최대 32자까지 포함합니다. 전체 문자열을 사용할 수 없어 두 문자만 표시되는 경우도 있습니다. 이 동작은 복구 과정에서 다시 획득한 응용 프로그램 잠금에 대한 데이터베이스 복구 시에만 수행됩니다. 해시 값은 이 응용 프로그램 잠금 리소스에 해당하는 전체 리소스 문자열의 해시를 나타냅니다.

HOBT

해당 사항 없음

HoBt ID는 resource_associated_entity_id로 포함된 ID입니다.

ALLOCATION_UNIT

해당 사항 없음

할당 단위 ID는 resource_associated_entity_id로 포함된 ID입니다.

METADATA.ASSEMBLY

assembly_id = A

정보를 제공하기 위해서만 확인됩니다. 지원되지 않습니다. 향후 호환성은 보장되지 않습니다.

METADATA.ASSEMBLY_CLR_NAME

$qname_id = Q

정보를 제공하기 위해서만 확인됩니다. 지원되지 않습니다. 향후 호환성은 보장되지 않습니다.

METADATA.ASSEMBLY_TOKEN

assembly_id = A, $token_id

정보를 제공하기 위해서만 확인됩니다. 지원되지 않습니다. 향후 호환성은 보장되지 않습니다.

METADATA.ASSYMMETRIC_KEY

asymmetric_key_id = A

정보를 제공하기 위해서만 확인됩니다. 지원되지 않습니다. 향후 호환성은 보장되지 않습니다.

METADATA.AUDIT

audit_id = A

정보를 제공하기 위해서만 확인됩니다. 지원되지 않습니다. 향후 호환성은 보장되지 않습니다.

METADATA.AUDIT_ACTIONS

device_id = D, major_id = M

정보를 제공하기 위해서만 확인됩니다. 지원되지 않습니다. 향후 호환성은 보장되지 않습니다.

METADATA.AUDIT_SPECIFICATION

audit_specification_id = A

정보를 제공하기 위해서만 확인됩니다. 지원되지 않습니다. 향후 호환성은 보장되지 않습니다.

METADATA.CERTIFICATE

certificate_id = C

정보를 제공하기 위해서만 확인됩니다. 지원되지 않습니다. 향후 호환성은 보장되지 않습니다.

METADATA.CHILD_INSTANCE

$hash = H1:H2:H3

정보를 제공하기 위해서만 확인됩니다. 지원되지 않습니다. 향후 호환성은 보장되지 않습니다.

METADATA.COMPRESSED_FRAGMENT

compressed_fragment_id = C

정보를 제공하기 위해서만 확인됩니다. 지원되지 않습니다. 향후 호환성은 보장되지 않습니다.

METADATA.CONVERSTATION_ENDPOINT_RECV

$hash = H1:H2:H3

정보를 제공하기 위해서만 확인됩니다. 지원되지 않습니다. 향후 호환성은 보장되지 않습니다.

METADATA.CONVERSTATION_ENDPOINT_SEND

$hash = H1:H2:H3

정보를 제공하기 위해서만 확인됩니다. 지원되지 않습니다. 향후 호환성은 보장되지 않습니다.

METADATA.CONVERSATION_GROUP

$hash = H1:H2:H3

정보를 제공하기 위해서만 확인됩니다. 지원되지 않습니다. 향후 호환성은 보장되지 않습니다.

METADATA.CONVERSATION_PRIORITY

conversation_priority_id = C

정보를 제공하기 위해서만 확인됩니다. 지원되지 않습니다. 향후 호환성은 보장되지 않습니다.

METADATA.CREDENTIAL

credential_id = C

정보를 제공하기 위해서만 확인됩니다. 지원되지 않습니다. 향후 호환성은 보장되지 않습니다.

METADATA.CRYPTOGRAPHIC_PROVIDER

provider_id = P

정보를 제공하기 위해서만 확인됩니다. 지원되지 않습니다. 향후 호환성은 보장되지 않습니다.

METADATA.DATA_SPACE

data_space_id = D

정보를 제공하기 위해서만 확인됩니다. 지원되지 않습니다. 향후 호환성은 보장되지 않습니다.

METADATA.DATABASE

database_id = D

정보를 제공하기 위해서만 확인됩니다. 지원되지 않습니다. 향후 호환성은 보장되지 않습니다.

METADATA.DATABASE_PRINCIPAL

principal_id = P

정보를 제공하기 위해서만 확인됩니다. 지원되지 않습니다. 향후 호환성은 보장되지 않습니다.

METADATA.DB_MIRRORING_SESSION

database_id = D

정보를 제공하기 위해서만 확인됩니다. 지원되지 않습니다. 향후 호환성은 보장되지 않습니다.

METADATA.DB_MIRRORING_WITNESS

$hash = H1:H2:H3

정보를 제공하기 위해서만 확인됩니다. 지원되지 않습니다. 향후 호환성은 보장되지 않습니다.

METADATA.DB_PRINCIPAL_SID

$hash = H1:H2:H3

정보를 제공하기 위해서만 확인됩니다. 지원되지 않습니다. 향후 호환성은 보장되지 않습니다.

METADATA.ENDPOINT

endpoint_id = E

정보를 제공하기 위해서만 확인됩니다. 지원되지 않습니다. 향후 호환성은 보장되지 않습니다.

METADATA.ENDPOINT_WEBMETHOD

$hash = H1:H2:H3

정보를 제공하기 위해서만 확인됩니다. 지원되지 않습니다. 향후 호환성은 보장되지 않습니다.

METADATA.FULLTEXT_CATALOG

fulltext_catalog_id = F

정보를 제공하기 위해서만 확인됩니다. 지원되지 않습니다. 향후 호환성은 보장되지 않습니다.

METADATA.FULLTEXT_INDEX

object_id = O

정보를 제공하기 위해서만 확인됩니다. 지원되지 않습니다. 향후 호환성은 보장되지 않습니다.

METADATA.EXPR_COLUMN

object_id = O, column_id = C

정보를 제공하기 위해서만 확인됩니다. 지원되지 않습니다. 향후 호환성은 보장되지 않습니다.

METADATA.EXPR_HASH

object_id = O, $hash = H

정보를 제공하기 위해서만 확인됩니다. 지원되지 않습니다. 향후 호환성은 보장되지 않습니다.

METADATA.FULLTEXT_CATALOG

fulltext_catalog_id = F

정보를 제공하기 위해서만 확인됩니다. 지원되지 않습니다. 향후 호환성은 보장되지 않습니다.

METADATA.FULLTEXT_INDEX

object_id = O

정보를 제공하기 위해서만 확인됩니다. 지원되지 않습니다. 향후 호환성은 보장되지 않습니다.

METADATA.FULLTEXT_STOPLIST

fulltext_stoplist_id = F

정보를 제공하기 위해서만 확인됩니다. 지원되지 않습니다. 향후 호환성은 보장되지 않습니다.

METADATA.INDEX_EXTENSION_SCHEME

index_extension_id = I

정보를 제공하기 위해서만 확인됩니다. 지원되지 않습니다. 향후 호환성은 보장되지 않습니다.

METADATA.INDEXSTATS

object_id = O, index_id or stats_id = I

정보를 제공하기 위해서만 확인됩니다. 지원되지 않습니다. 향후 호환성은 보장되지 않습니다.

METADATA.INSTANTIATED_TYPE_HASH

user_type_id = U, hash = H

정보를 제공하기 위해서만 확인됩니다. 지원되지 않습니다. 향후 호환성은 보장되지 않습니다.

METADATA.MESSAGE

message_id = M

정보를 제공하기 위해서만 확인됩니다. 지원되지 않습니다. 향후 호환성은 보장되지 않습니다.

METADATA.METADATA_CACHE

$hash = H1:H2:H3

정보를 제공하기 위해서만 확인됩니다. 지원되지 않습니다. 향후 호환성은 보장되지 않습니다.

METADATA.PARTITION_FUNCTION

function_id = F

정보를 제공하기 위해서만 확인됩니다. 지원되지 않습니다. 향후 호환성은 보장되지 않습니다.

METADATA.PASSWORD_POLICY

principal_id = P

정보를 제공하기 위해서만 확인됩니다. 지원되지 않습니다. 향후 호환성은 보장되지 않습니다.

METADATA.PERMISSIONS

class = C

정보를 제공하기 위해서만 확인됩니다. 지원되지 않습니다. 향후 호환성은 보장되지 않습니다.

METADATA.PLAN_GUIDE

plan_guide_id = P

정보를 제공하기 위해서만 확인됩니다. 지원되지 않습니다. 향후 호환성은 보장되지 않습니다.

METADATA. PLAN_GUIDE_HASH

$hash = H1:H2:H3

정보를 제공하기 위해서만 확인됩니다. 지원되지 않습니다. 향후 호환성은 보장되지 않습니다.

METADATA. PLAN_GUIDE_SCOPE

scope_id = S

정보를 제공하기 위해서만 확인됩니다. 지원되지 않습니다. 향후 호환성은 보장되지 않습니다.

METADATA.QNAME

$qname_id = Q

정보를 제공하기 위해서만 확인됩니다. 지원되지 않습니다. 향후 호환성은 보장되지 않습니다.

METADATA.QNAME_HASH

$qname_scope_id = Q, $qname_hash = H

정보를 제공하기 위해서만 확인됩니다. 지원되지 않습니다. 향후 호환성은 보장되지 않습니다.

METADATA.REMOTE_SERVICE_BINDING

remote_service_binding_id = R

정보를 제공하기 위해서만 확인됩니다. 지원되지 않습니다. 향후 호환성은 보장되지 않습니다.

METADATA.ROUTE

route_id = R

정보를 제공하기 위해서만 확인됩니다. 지원되지 않습니다. 향후 호환성은 보장되지 않습니다.

METADATA.SCHEMA

schema_id = S

정보를 제공하기 위해서만 확인됩니다. 지원되지 않습니다. 향후 호환성은 보장되지 않습니다.

METADATA.SECURITY_CACHE

$hash = H1:H2:H3

정보를 제공하기 위해서만 확인됩니다. 지원되지 않습니다. 향후 호환성은 보장되지 않습니다.

METADATA.SECURITY_DESCRIPTOR

sd_id = S

정보를 제공하기 위해서만 확인됩니다. 지원되지 않습니다. 향후 호환성은 보장되지 않습니다.

METADATA.SEQUENCE

$seq_type = S, object_id = O

정보를 제공하기 위해서만 확인됩니다. 지원되지 않습니다. 향후 호환성은 보장되지 않습니다.

METADATA.SERVER

server_id = S

정보를 제공하기 위해서만 확인됩니다. 지원되지 않습니다. 향후 호환성은 보장되지 않습니다.

METADATA.SERVER_EVENT_SESSIONS

event_session_id = E

정보를 제공하기 위해서만 확인됩니다. 지원되지 않습니다. 향후 호환성은 보장되지 않습니다.

METADATA.SERVER_PRINCIPAL

principal_id = P

정보를 제공하기 위해서만 확인됩니다. 지원되지 않습니다. 향후 호환성은 보장되지 않습니다.

METADATA.SERVICE

service_id = S

정보를 제공하기 위해서만 확인됩니다. 지원되지 않습니다. 향후 호환성은 보장되지 않습니다.

METADATA.SERVICE_BROKER_GUID

$hash = H1:H2:H3

정보를 제공하기 위해서만 확인됩니다. 지원되지 않습니다. 향후 호환성은 보장되지 않습니다.

METADATA.SERVICE_CONTRACT

service_contract_id = S

정보를 제공하기 위해서만 확인됩니다. 지원되지 않습니다. 향후 호환성은 보장되지 않습니다.

METADATA.SERVICE_MESSAGE_TYPE

message_type_id = M

정보를 제공하기 위해서만 확인됩니다. 지원되지 않습니다. 향후 호환성은 보장되지 않습니다.

METADATA.STATS

object_id = O, stats_id = S

정보를 제공하기 위해서만 확인됩니다. 지원되지 않습니다. 향후 호환성은 보장되지 않습니다.

METADATA.SYMMETRIC_KEY

symmetric_key_id = S

정보를 제공하기 위해서만 확인됩니다. 지원되지 않습니다. 향후 호환성은 보장되지 않습니다.

METADATA.USER_TYPE

user_type_id = U

정보를 제공하기 위해서만 확인됩니다. 지원되지 않습니다. 향후 호환성은 보장되지 않습니다.

METADATA.XML_COLLECTION

xml_collection_id = X

정보를 제공하기 위해서만 확인됩니다. 지원되지 않습니다. 향후 호환성은 보장되지 않습니다.

METADATA.XML_COMPONENT

xml_component_id = X

정보를 제공하기 위해서만 확인됩니다. 지원되지 않습니다. 향후 호환성은 보장되지 않습니다.

METADATA.XML_INDEX_QNAME

object_id = O, $qname_id = Q

정보를 제공하기 위해서만 확인됩니다. 지원되지 않습니다. 향후 호환성은 보장되지 않습니다.

1. 다른 도구와 함께 sys.dm_tran_locks 사용

다음 예에는 다른 트랜잭션에 의해 업데이트 작업이 차단되는 시나리오에서 실행됩니다. sys.dm_tran_locks와 다른 도구를 사용하여 리소스 잠금에 대한 정보를 제공합니다.

USE tempdb;
GO

-- Create test table and index.
CREATE TABLE t_lock
    (c1 int, c2 int);
GO

CREATE INDEX t_lock_ci on t_lock(c1);
GO

-- Insert values into test table
INSERT INTO t_lock VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6);
GO

-- Session 1
SET TRANSACTION ISOLATION LEVEL READ COMMITTED;

BEGIN TRAN
    SELECT c1
        FROM t_lock
        WITH(holdlock, rowlock);

-- Session 2
BEGIN TRAN
    UPDATE t_lock SET c1 = 10;

다음 쿼리에서는 잠금 정보를 표시합니다. <dbid> 값을 sys.databasesdatabase_id로 대체해야 합니다.

SELECT resource_type, resource_associated_entity_id,
    request_status, request_mode,request_session_id,
    resource_description 
FROM sys.dm_tran_locks
WHERE resource_database_id = <dbid>;

다음 쿼리에서는 위 쿼리의 resource_associated_entity_id를 사용하여 개체 정보를 반환합니다. 해당 개체가 포함된 데이터베이스에 연결되어 있는 동안 이 쿼리를 실행해야 합니다.

SELECT object_name(object_id), partition_id, index_id, partition_number
    hobt_id, rows
FROM sys.partitions
WHERE hobt_id=<resource_associated_entity_id>;

다음 쿼리에서는 차단 정보를 표시합니다.

SELECT 
        t1.resource_type,
        t1.resource_database_id,
        t1.resource_associated_entity_id,
        t1.request_mode,
        t1.request_session_id,
        t2.blocking_session_id
FROM sys.dm_tran_locks AS t1
INNER JOIN sys.dm_os_waiting_tasks AS t2
    ON t1.lock_owner_address = t2.resource_address;

트랜잭션을 롤백하여 리소스를 해제합니다.

-- Session 1
ROLLBACK;
GO

-- Session 2
ROLLBACK;
GO

2. 운영 체제 스레드에 세션 정보 연결

다음 예에서는 세션 ID를 Windows 스레드 ID에 연결하는 정보를 반환합니다. 스레드 성능은 Windows 성능 모니터에서 모니터링할 수 있습니다. 이 쿼리는 현재 중지 중인 세션 ID를 반환하지 않습니다.

SELECT STasks.session_id, SThreads.os_thread_id
FROM sys.dm_os_tasks AS STasks
INNER JOIN sys.dm_os_threads AS SThreads
    ON STasks.worker_address = SThreads.worker_address
WHERE STasks.session_id IS NOT NULL
ORDER BY STasks.session_id;
GO