sys.dm_tran_locks (Transact-SQL)

적용 대상: Microsoft Fabric의 SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse Analytics AnalyticsPlatform System(PDW) Warehouse

SQL Server에서 현재 활성 잠금 관리자 리소스에 대한 정보를 반환합니다. 각 행은 부여되었거나 부여되기를 기다리는 잠금에 대한 잠금 관리자에 대한 현재 활성 요청을 나타냅니다.

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

참고 항목

Azure Synapse Analytics 또는 PDW(Analytics Platform System)에서 이를 호출하려면 이름을 sys.dm_pdw_nodes_tran_locks사용합니다. 이 구문은 Azure Synapse Analytics의 서버리스 SQL 풀에서 지원되지 않습니다.

열 이름 데이터 형식 설명
resource_type nvarchar(60) 리소스 종류를 나타냅니다. 값은 DATABASE, FILE, OBJECT, PAGE, KEY, EXTENT, RID, APPLICATION, METADATA, HOBT, ALLOCATION_UNIT 또는 XACT일 수 있습니다.
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 정수 분할된 잠금 리소스에 대한 잠금 파티션의 ID입니다. 분할되지 않은 잠금 리소스의 값은 .입니다 0.
request_mode nvarchar(60) 요청의 모드입니다. 부여된 요청의 경우 허용되는 모드입니다. 대기 중인 요청의 경우 요청 중인 모드입니다.

NULL = 리소스에 대한 액세스 권한이 부여되지 않습니다. 자리 표시자 역할을 합니다.

Sch-S(스키마 안정성) = 모든 세션에서 스키마 요소에 대한 스키마 안정성 잠금을 보유하는 동안 테이블 또는 인덱스 등의 스키마 요소가 삭제되지 않도록 합니다.

Sch-M(스키마 수정) = 지정된 리소스의 스키마를 변경하려는 모든 세션에서 개최해야 합니다. 표시된 개체를 참조하는 다른 세션이 없는지 확인합니다.

S(공유) = 보유 세션에 리소스에 대한 공유 액세스 권한이 부여됩니다.

U(업데이트) = 결국 업데이트될 수 있는 리소스에서 획득한 업데이트 잠금을 나타냅니다. 여러 세션이 향후 잠재적 업데이트를 위해 리소스를 잠글 때 발생하는 일반적인 형태의 교착 상태를 방지하는 데 사용됩니다.

X(배타적) = 보유 세션에 리소스에 대한 단독 액세스 권한이 부여됩니다.

IS(의도 공유) = 잠금 계층 구조의 일부 하위 리소스에 S 잠금을 배치하려는 의도를 나타냅니다.

IU(의도 업데이트) = 잠금 계층 구조의 일부 하위 리소스에 U 잠금을 배치하려는 의도를 나타냅니다.

IX(의도 배타) = 잠금 계층의 일부 하위 리소스에 X 잠금을 배치하려는 의도를 나타냅니다.

SIU(공유 의도 업데이트) = 잠금 계층 구조의 하위 리소스에 대한 업데이트 잠금을 획득할 목적으로 리소스에 대한 공유 액세스를 나타냅니다.

SIX(공유 의도 배타) = 잠금 계층의 하위 리소스에 대한 배타적 잠금을 획득하려는 의도로 리소스에 대한 공유 액세스를 나타냅니다.

UIX(업데이트 의도 배타) = 잠금 계층 구조의 하위 리소스에 대한 배타적 잠금을 획득하려는 목적으로 리소스에 대한 업데이트 잠금을 나타냅니다.

BU = 대량 작업에서 사용됩니다.

RangeS_S(공유 키 범위 및 공유 리소스 잠금) = 직렬화 가능한 범위 검색을 나타냅니다.

RangeS_U(공유 키 범위 및 업데이트 리소스 잠금) = 직렬화 가능한 업데이트 검색을 나타냅니다.

RangeI_N(키 범위 및 Null 리소스 잠금 삽입) = 새 키를 인덱스에 삽입하기 전에 범위를 테스트하는 데 사용됩니다.

RangeI_S = RangeI_N 및 S 잠금의 겹침으로 만든 키 범위 변환 잠금입니다.

RangeI_U = RangeI_N 및 U 잠금의 겹침으로 만든 키 범위 변환 잠금입니다.

RangeI_X = RangeI_N 및 X 잠금의 겹침으로 만든 키 범위 변환 잠금입니다.

RangeX_S = RangeI_N 및 RangeS_S 겹쳐서 만든 키 범위 변환 잠금입니다. 잠금.

RangeX_U = RangeI_N 및 RangeS_U 잠금의 겹침으로 만든 키 범위 변환 잠금입니다.

RangeX_X(배타적 키 범위 및 배타적 리소스 잠금) = 범위에서 키를 업데이트할 때 사용되는 변환 잠금입니다.
request_type nvarchar(60) 요청 유형입니다. LOCK 값입니다.
request_status nvarchar(60) 이 요청의 현재 상태. 가능한 값은 GRANTED, CONVERT, WAIT, LOW_PRIORITY_CONVERT, LOW_PRIORITY_WAIT 또는 ABORT_BLOCKERS. 낮은 우선 순위 대기 및 중단 차단에 대한 자세한 내용은 ALTER INDEX(Transact-SQL)low_priority_lock_wait 섹션을 참조하세요.
request_reference_count smallint 동일한 요청자가 이 리소스를 요청한 횟수의 근사 값을 반환합니다.
request_lifetime int 정보를 제공하기 위해서만 확인됩니다. 지원 안 됨 향후 호환성은 보장되지 않습니다.
request_session_id int session_id 현재 이 요청을 소유하고 있습니다. 분산 및 바인딩된 트랜잭션에 대해 소유 session_id 가 변경될 수 있습니다. 값은 -2 요청이 분리된 분산 트랜잭션에 속한다는 것을 나타냅니다. 값 -3 은 롤백을 성공적으로 완료할 수 없기 때문에 복구 시 롤백이 지연된 트랜잭션과 같이 요청이 지연된 복구 트랜잭션에 속한다는 것을 나타냅니다.
request_exec_context_id int 현재 이 요청을 소유하는 프로세스의 실행 컨텍스트 ID입니다.
request_request_id int request_id 현재 이 요청을 소유하는 프로세스의 일괄 처리 ID입니다. 이 값은 트랜잭션에 대한 활성 MARS(다중 활성 결과 집합) 연결이 변경될 때마다 변경됩니다.
request_owner_type nvarchar(60) 요청을 소유하는 엔터티 형식입니다. 잠금 관리자 요청은 다양한 엔터티에서 소유할 수 있습니다. 가능한 값은 다음과 같습니다.

TRANSACTION = 요청이 트랜잭션에 의해 소유됩니다.

CURSOR = 요청이 커서에 의해 소유됩니다.

SESSION = 요청이 사용자 세션에 의해 소유됩니다.

SHARED_TRANSACTION_WORKSPACE = 요청은 트랜잭션 작업 영역의 공유 부분에 의해 소유됩니다.

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

NOTIFICATION_OBJECT = 요청은 내부 SQL Server 구성 요소가 소유합니다. 이 구성 요소는 다른 구성 요소가 잠금을 대기할 때 잠금 관리자에게 알리도록 요청했습니다. FileTable 기능은 이 값을 사용하는 구성 요소입니다.

참고: 작업 공간은 내부적으로 참여 세션에 대한 잠금을 유지하는 데 사용됩니다.
request_owner_id bigint 이 요청의 특정 소유자 ID입니다.

트랜잭션이 요청의 소유자인 경우 이 값에는 트랜잭션 ID가 포함됩니다.

FileTable이 요청의 소유자인 request_owner_id 경우 다음 값 중 하나가 있습니다.
  • -4 : FileTable에서 데이터베이스 잠금을 수행했습니다.
  • -3 : FileTable에서 테이블 잠금을 수행했습니다.
  • 기타 값 : 값은 파일 핸들을 나타냅니다. 이 값은 동적 관리 뷰 sys.dm_filestream_non_transacted_handles(Transact-SQL)에도 fcb_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_taskswith resource_address 열에 조인할 수 있습니다.
pdw_node_id int 적용 대상: Azure Synapse Analytics, Analytics Platform System(PDW)

이 배포가 있는 노드의 식별자입니다.

사용 권한

SQL Server 및 SQL Managed Instance에서는 VIEW SERVER STATE 권한이 필요합니다.

SQL Database Basic, S0S1 서비스 목표 및 탄력적 풀의 데이터베이스에는 서버 관리자 계정, Microsoft Entra 관리자 계정 또는 서버 역할##MS_ServerStateReader##멤버 자격이 필요합니다. 다른 모든 SQL Database 서비스 목표에 대해서는 데이터베이스에 대한 VIEW DATABASE STATE 권한 또는 ##MS_ServerStateReader## 서버 역할의 멤버 자격이 필요합니다.

SQL Server 2022 이상에 대한 권한

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

설명

부여된 요청 상태 요청자에게 리소스에 대한 잠금이 부여되었음을 나타냅니다. 대기 요청은 요청이 아직 부여되지 않음을 나타냅니다. 다음 대기 요청 형식은 열에서 request_status 반환됩니다.

  • 변환 요청 상태 요청자에게 리소스에 대한 요청이 이미 부여되었으며 현재 초기 요청으로의 업그레이드가 부여되기를 기다리고 있음을 나타냅니다.

  • 대기 요청 상태 요청자가 현재 리소스에 대해 부여된 요청을 보유하지 않음을 나타냅니다.

내부 잠금 관리자 데이터 구조에서 채워지므로 sys.dm_tran_locks 이 정보를 기본 일반 처리에 추가 오버헤드가 추가되지는 않습니다. 뷰를 구체화하려면 잠금 관리자 내부 데이터 구조에 액세스해야 하므로 이는 서버의 일반 처리에 사소한 영향을 미칠 수 있습니다. 이러한 효과는 눈에 띄지 않아야 하며 많이 사용되는 리소스에만 영향을 주어야 합니다. 이 보기의 데이터는 라이브 잠금 관리자 상태에 해당하므로 데이터는 언제든지 변경될 수 있으며 잠금을 획득하고 해제할 때 행이 추가되고 제거됩니다. 이 보기를 쿼리하는 애플리케이션은 잠금 관리자 구조의 무결성을 보호하는 특성으로 인해 예측할 수 없는 성능을 경험할 수 있습니다. 이 보기에는 기록 정보가 없습니다.

두 요청은 모든 리소스 그룹 열이 동일한 경우에만 동일한 리소스에서 작동합니다.

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

  • SET TRANSACTION ISOLATION LEVEL - 세션에 대한 잠금 수준을 지정합니다. 자세한 내용은 SET TRANSACTION ISOLATION LEVEL(Transact-SQL)을 참조하세요.

  • FROM 절에서 테이블의 개별 참조에 대한 잠금 수준을 지정하는 잠금 테이블 힌트입니다. 구문 및 제한 사항은 테이블 힌트(Transact-SQL)를 참조하세요.

하나 session_id 아래에서 실행되는 리소스는 둘 이상의 잠금을 부여할 수 있습니다. 한 세션에서 실행되는 다른 엔터티는 각각 동일한 리소스에 대한 잠금을 소유할 수 있으며, 정보는 반환되는 열 및 request_owner_id 열에 request_owner_typesys.dm_tran_locks표시됩니다. 동일한 request_owner_type 인스턴스가 여러 개 있는 request_owner_id 경우 열은 각 인스턴스를 구분하는 데 사용됩니다. 분산 트랜잭션의 request_owner_type 경우 열과 열은 request_owner_guid 서로 다른 엔터티 정보를 표시합니다.

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

한 세션에서 실행되는 여러 커서는 구별할 수 없으며 하나의 엔터티로 처리됩니다.

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

잠금

트랜잭션 중에 읽거나 수정한 행과 같은 SQL Server 리소스에 잠금이 유지되어 서로 다른 트랜잭션에서 리소스를 동시에 사용할 수 없습니다. 예를 들어 트랜잭션에 의해 테이블 내의 행에 배타적(X) 잠금이 유지되는 경우 잠금이 해제될 때까지 다른 트랜잭션은 해당 행을 수정할 수 없습니다. 잠금을 최소화하면 동시성이 향상되어 성능이 향상될 수 있습니다.

리소스 세부 정보

다음 표에서는 열에 표시되는 리소스를 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를 사용할 수 있는 것은 아닙니다.
가져오기 인덱스의 행을 나타냅니다. HoBt ID입니다. 이 값은 에 해당합니다.sys.partitions.hobt_id
EXTENT 데이터 파일 익스텐트를 나타냅니다. 익스텐트는 8개의 연속 페이지 그룹입니다. 해당 없음
RID 힙의 실제 행을 나타냅니다. HoBt ID입니다. 이 값은 에 해당합니다.sys.partitions.hobt_id HoBt ID는 호출자가 제공할 수 있는 추가 정보이며 모든 호출자가 이 정보를 제공할 수 없기 때문에 RID 리소스에 항상 HoBt ID를 사용할 수 있는 것은 아닙니다.
APPLICATION 애플리케이션에서 지정한 리소스를 나타냅니다. 해당 없음
메타데이터 메타데이터 정보를 나타냅니다. 해당 없음
Hobt 힙 또는 B-트리를 나타냅니다. 기본 액세스 경로 구조입니다. HoBt ID입니다. 이 값은 에 해당합니다.sys.partitions.hobt_id
ALLOCATION_UNIT 인덱스 파티션과 같은 관련 페이지의 집합을 나타냅니다. 각 할당 단위는 단일 IAM(Index Allocation Map) 체인을 처리합니다. 할당 단위 ID입니다. 이 값은 에 해당합니다.sys.allocation_units.allocation_unit_id
Xact XACT 리소스입니다. 최적화된 잠금과 관련이 있습니다. 다음과 같은 두 가지 시나리오가 있습니다.

시나리오 1 (소유자)
- 리소스 종류: XACT.
- 리소스 설명: TID 잠금이 유지 resource_description 되면 리소스입니다 XACT .
- 리소스 관련 엔터티 ID: resource_associated_entity_id 0입니다.

시나리오 2 (웨이터)
- 리소스 종류: XACT.
- 리소스 설명: TID 잠금 resource_description 을 기다리는 경우 기본 또는 RID 리소스가 뒤에 있는 KEY 리소스입니다XACT.
- 리소스 관련 엔터티 ID: resource_associated_entity_id 기본 HoBt ID입니다.

참고 항목

SQL Server 설명서는 인덱스를 지칭할 때 B-트리라는 용어를 사용합니다. rowstore 인덱스에서 SQL Server는 B+ 트리를 구현합니다. 이는 columnstore 인덱스나 메모리 내 데이터 저장소에는 적용되지 않습니다. 자세한 내용은 SQL Server 및 Azure SQL 인덱스 아키텍처 및 디자인 가이드를 참조 하세요.

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

ResourceSubType 동기화
ALLOCATION_UNIT. BULK_OPERATION_PAGE 대량 작업에 사용되는 미리 할당된 페이지입니다.
ALLOCATION_UNIT. PAGE_COUNT 지연된 삭제 작업 중 할당 단위 페이지 수 통계입니다.
DATABASE.BULKOP_BACKUP_DB 대량 작업이 있는 데이터베이스 백업.
데이터베이스. BULKOP_BACKUP_LOG 대량 작업이 있는 데이터베이스 로그 백업
데이터베이스. CHANGE_TRACKING_CLEANUP 변경 내용 추적 클린업 작업.
데이터베이스. CT_DDL 데이터베이스 및 테이블 수준 변경 내용 추적 DDL 작업
데이터베이스. CONVERSATION_PRIORITY CREATE BROKER PRIORITY와 같은 Service Broker 변환 우선 순위 작업을 동기화합니다.
데이터베이스. Ddl 파일 그룹 작업을 사용하는 DDL(데이터 정의 언어) 작업(예: 삭제).
데이터베이스. ENCRYPTION_SCAN TDE 암호화 동기화를 수행합니다.
데이터베이스. PLANGUIDE 계획 가이드 동기화.
데이터베이스. RESOURCE_GOVERNOR_DDL ALTER RESOURCE POOL과 같은 리소스 관리자 작업에 대한 DDL 작업입니다.
DATABASE.SHRINK 데이터베이스 축소 작업.
데이터베이스. 시작 데이터베이스 시작 동기화에 사용됩니다.
FILE.SHRINK 파일 축소 작업.
Hobt. BULK_OPERATION 스냅샷, 커밋되지 않은 읽기 및 행 버전 관리를 사용하여 커밋된 읽기와 같은 격리 수준에서 동시 검색을 사용하는 힙 최적화 대량 로드 작업
Hobt. INDEX_REORGANIZE 힙 또는 인덱스 재구성 작업.
개체. 컴파일할 저장 프로시저 컴파일
OBJECT.INDEX_OPERATION 인덱스 작업을 동기화합니다.
OBJECT.UPDSTATS 테이블의 통계 업데이트를 동기화합니다.
메타 데이터. 어셈블리 정보를 제공하기 위해서만 확인됩니다. 지원 안 됨 향후 호환성은 보장되지 않습니다.
METADATA.ASSEMBLY_CLR_NAME 정보를 제공하기 위해서만 확인됩니다. 지원 안 됨 향후 호환성은 보장되지 않습니다.
메타 데이터. ASSEMBLY_TOKEN 정보를 제공하기 위해서만 확인됩니다. 지원 안 됨 향후 호환성은 보장되지 않습니다.
메타 데이터. ASYMMETRIC_KEY 정보를 제공하기 위해서만 확인됩니다. 지원 안 됨 향후 호환성은 보장되지 않습니다.
메타 데이터. 감사 정보를 제공하기 위해서만 확인됩니다. 지원 안 됨 향후 호환성은 보장되지 않습니다.
메타 데이터. AUDIT_ACTIONS 정보를 제공하기 위해서만 확인됩니다. 지원 안 됨 향후 호환성은 보장되지 않습니다.
METADATA.AUDIT_SPECIFICATION 정보를 제공하기 위해서만 확인됩니다. 지원 안 됨 향후 호환성은 보장되지 않습니다.
메타 데이터. AVAILABILITY_GROUP 정보를 제공하기 위해서만 확인됩니다. 지원 안 됨 향후 호환성은 보장되지 않습니다.
METADATA.CERTIFICATE 정보를 제공하기 위해서만 확인됩니다. 지원 안 됨 향후 호환성은 보장되지 않습니다.
메타 데이터. CHILD_INSTANCE 정보를 제공하기 위해서만 확인됩니다. 지원 안 됨 향후 호환성은 보장되지 않습니다.
메타 데이터. COMPRESSED_FRAGMENT 정보를 제공하기 위해서만 확인됩니다. 지원 안 됨 향후 호환성은 보장되지 않습니다.
메타 데이터. COMPRESSED_ROWSET 정보를 제공하기 위해서만 확인됩니다. 지원 안 됨 향후 호환성은 보장되지 않습니다.
메타 데이터. CONVERSTATION_ENDPOINT_RECV 정보를 제공하기 위해서만 확인됩니다. 지원 안 됨 향후 호환성은 보장되지 않습니다.
METADATA.CONVERSTATION_ENDPOINT_SEND 정보를 제공하기 위해서만 확인됩니다. 지원 안 됨 향후 호환성은 보장되지 않습니다.
METADATA.CONVERSATION_GROUP 정보를 제공하기 위해서만 확인됩니다. 지원 안 됨 향후 호환성은 보장되지 않습니다.
메타 데이터. CONVERSATION_PRIORITY 정보를 제공하기 위해서만 확인됩니다. 지원 안 됨 향후 호환성은 보장되지 않습니다.
메타 데이터. 자격 증명 정보를 제공하기 위해서만 확인됩니다. 지원 안 됨 향후 호환성은 보장되지 않습니다.
메타 데이터. CRYPTOGRAPHIC_PROVIDER 정보를 제공하기 위해서만 확인됩니다. 지원 안 됨 향후 호환성은 보장되지 않습니다.
메타 데이터. DATA_SPACE 정보를 제공하기 위해서만 확인됩니다. 지원 안 됨 향후 호환성은 보장되지 않습니다.
메타 데이터. 데이터베이스 정보를 제공하기 위해서만 확인됩니다. 지원 안 됨 향후 호환성은 보장되지 않습니다.
메타 데이터. DATABASE_PRINCIPAL 정보를 제공하기 위해서만 확인됩니다. 지원 안 됨 향후 호환성은 보장되지 않습니다.
메타 데이터. DB_MIRRORING_SESSION 정보를 제공하기 위해서만 확인됩니다. 지원 안 됨 향후 호환성은 보장되지 않습니다.
METADATA.DB_MIRRORING_WITNESS 정보를 제공하기 위해서만 확인됩니다. 지원 안 됨 향후 호환성은 보장되지 않습니다.
메타 데이터. DB_PRINCIPAL_SID 정보를 제공하기 위해서만 확인됩니다. 지원 안 됨 향후 호환성은 보장되지 않습니다.
METADATA.ENDPOINT 정보를 제공하기 위해서만 확인됩니다. 지원 안 됨 향후 호환성은 보장되지 않습니다.
메타 데이터. ENDPOINT_WEBMETHOD 정보를 제공하기 위해서만 확인됩니다. 지원 안 됨 향후 호환성은 보장되지 않습니다.
메타 데이터. EXPR_COLUMN 정보를 제공하기 위해서만 확인됩니다. 지원 안 됨 향후 호환성은 보장되지 않습니다.
메타 데이터. EXPR_HASH 정보를 제공하기 위해서만 확인됩니다. 지원 안 됨 향후 호환성은 보장되지 않습니다.
메타 데이터. FULLTEXT_CATALOG 정보를 제공하기 위해서만 확인됩니다. 지원 안 됨 향후 호환성은 보장되지 않습니다.
메타 데이터. FULLTEXT_INDEX 정보를 제공하기 위해서만 확인됩니다. 지원 안 됨 향후 호환성은 보장되지 않습니다.
메타 데이터. FULLTEXT_STOPLIST 정보를 제공하기 위해서만 확인됩니다. 지원 안 됨 향후 호환성은 보장되지 않습니다.
메타 데이터. INDEX_EXTENSION_SCHEME 정보를 제공하기 위해서만 확인됩니다. 지원 안 됨 향후 호환성은 보장되지 않습니다.
메타 데이터. INDEXSTATS 정보를 제공하기 위해서만 확인됩니다. 지원 안 됨 향후 호환성은 보장되지 않습니다.
METADATA.INSTANTIATED_TYPE_HASH 정보를 제공하기 위해서만 확인됩니다. 지원 안 됨 향후 호환성은 보장되지 않습니다.
메타 데이터. 메시지 정보를 제공하기 위해서만 확인됩니다. 지원 안 됨 향후 호환성은 보장되지 않습니다.
메타 데이터. METADATA_CACHE 정보를 제공하기 위해서만 확인됩니다. 지원 안 됨 향후 호환성은 보장되지 않습니다.
메타 데이터. PARTITION_FUNCTION 정보를 제공하기 위해서만 확인됩니다. 지원 안 됨 향후 호환성은 보장되지 않습니다.
메타 데이터. PASSWORD_POLICY 정보를 제공하기 위해서만 확인됩니다. 지원 안 됨 향후 호환성은 보장되지 않습니다.
메타 데이터. 권한을 정보를 제공하기 위해서만 확인됩니다. 지원 안 됨 향후 호환성은 보장되지 않습니다.
메타 데이터. PLAN_GUIDE 정보를 제공하기 위해서만 확인됩니다. 지원 안 됨 향후 호환성은 보장되지 않습니다.
메타 데이터. PLAN_GUIDE_HASH 정보를 제공하기 위해서만 확인됩니다. 지원 안 됨 향후 호환성은 보장되지 않습니다.
METADATA.PLAN_GUIDE_SCOPE 정보를 제공하기 위해서만 확인됩니다. 지원 안 됨 향후 호환성은 보장되지 않습니다.
메타 데이터. Qname 정보를 제공하기 위해서만 확인됩니다. 지원 안 됨 향후 호환성은 보장되지 않습니다.
메타 데이터. QNAME_HASH 정보를 제공하기 위해서만 확인됩니다. 지원 안 됨 향후 호환성은 보장되지 않습니다.
메타 데이터. REMOTE_SERVICE_BINDING 정보를 제공하기 위해서만 확인됩니다. 지원 안 됨 향후 호환성은 보장되지 않습니다.
메타 데이터. 경로 정보를 제공하기 위해서만 확인됩니다. 지원 안 됨 향후 호환성은 보장되지 않습니다.
메타 데이터. 스키마 정보를 제공하기 위해서만 확인됩니다. 지원 안 됨 향후 호환성은 보장되지 않습니다.
메타 데이터. SECURITY_CACHE 정보를 제공하기 위해서만 확인됩니다. 지원 안 됨 향후 호환성은 보장되지 않습니다.
메타 데이터. SECURITY_DESCRIPTOR 정보를 제공하기 위해서만 확인됩니다. 지원 안 됨 향후 호환성은 보장되지 않습니다.
METADATA.SEQUENCE 정보를 제공하기 위해서만 확인됩니다. 지원 안 됨 향후 호환성은 보장되지 않습니다.
메타 데이터. SERVER_EVENT_SESSIONS 정보를 제공하기 위해서만 확인됩니다. 지원 안 됨 향후 호환성은 보장되지 않습니다.
메타 데이터. SERVER_PRINCIPAL 정보를 제공하기 위해서만 확인됩니다. 지원 안 됨 향후 호환성은 보장되지 않습니다.
메타 데이터. 서비스 정보를 제공하기 위해서만 확인됩니다. 지원 안 됨 향후 호환성은 보장되지 않습니다.
메타 데이터. SERVICE_BROKER_GUID 정보를 제공하기 위해서만 확인됩니다. 지원 안 됨 향후 호환성은 보장되지 않습니다.
메타 데이터. SERVICE_CONTRACT 정보를 제공하기 위해서만 확인됩니다. 지원 안 됨 향후 호환성은 보장되지 않습니다.
메타 데이터. SERVICE_MESSAGE_TYPE 정보를 제공하기 위해서만 확인됩니다. 지원 안 됨 향후 호환성은 보장되지 않습니다.
메타 데이터. 통계 정보를 제공하기 위해서만 확인됩니다. 지원 안 됨 향후 호환성은 보장되지 않습니다.
메타 데이터. SYMMETRIC_KEY 정보를 제공하기 위해서만 확인됩니다. 지원 안 됨 향후 호환성은 보장되지 않습니다.
메타 데이터. USER_TYPE 정보를 제공하기 위해서만 확인됩니다. 지원 안 됨 향후 호환성은 보장되지 않습니다.
METADATA.XML_COLLECTION 정보를 제공하기 위해서만 확인됩니다. 지원 안 됨 향후 호환성은 보장되지 않습니다.
METADATA.XML_COMPONENT 정보를 제공하기 위해서만 확인됩니다. 지원 안 됨 향후 호환성은 보장되지 않습니다.
METADATA.XML_INDEX_QNAME 정보를 제공하기 위해서만 확인됩니다. 지원 안 됨 향후 호환성은 보장되지 않습니다.

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

리소스 서식 설명
DATABASE 해당 없음 열에서 데이터베이스 ID를 resource_database_id 이미 사용할 수 있습니다.
FILE <file_id> 이 리소스가 나타내는 파일의 ID입니다.
OBJECT <object_id> 이 리소스가 나타내는 개체의 ID입니다. 이 개체는 테이블뿐만 아니라 나열된 sys.objects모든 개체일 수 있습니다.
PAGE <file_id>:<page_in_file> 이 리소스가 나타내는 페이지의 파일 및 페이지 ID를 나타냅니다.
가져오기 <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>:<up to 32 characters>:(<hash_value>) 이 애플리케이션 잠금 리소스의 범위를 지정하는 데 사용되는 데이터베이스 보안 주체의 ID를 나타냅니다. 또한 이 애플리케이션 잠금 리소스에 해당하는 리소스 문자열에서 최대 32자까지 포함됩니다. 경우에 따라 전체 문자열을 더 이상 사용할 수 없으므로 두 문자만 표시할 수 있습니다. 이 동작은 복구 과정에서 다시 획득한 애플리케이션 잠금에 대한 데이터베이스 복구 시에만 수행됩니다. 해시 값은 이 애플리케이션 잠금 리소스에 해당하는 전체 리소스 문자열의 해시를 나타냅니다.
Hobt 해당 없음 HoBt ID는 resource_associated_entity_id.
ALLOCATION_UNIT 해당 없음 할당 단위 ID는 resource_associated_entity_id.
Xact <dbid>:<XdesId low>:<XdesId high> TID 리소스입니다. 최적화된 잠금과 관련이 있습니다.
XACT 키 [XACT <dbid>:<XdesId low>:<XdesId High>] KEY (<hash_value>) 클러스터형 인덱스 KEY 개체를 사용하여 트랜잭션이 대기 중인 기본 리소스입니다. 최적화된 잠금과 관련이 있습니다.
XACT RID [XACT <dbid>:<XdesId low>:<XdesId High>] RID (<file_id>:<page_in_file>:<row_on_page>) 힙 RID 개체를 사용하여 트랜잭션이 대기 중인 기본 리소스입니다. 최적화된 잠금과 관련이 있습니다.
메타 데이터. 어셈블리 assembly_id = A 정보를 제공하기 위해서만 확인됩니다. 지원 안 됨 향후 호환성은 보장되지 않습니다.
METADATA.ASSEMBLY_CLR_NAME $qname_id = Q 정보를 제공하기 위해서만 확인됩니다. 지원 안 됨 향후 호환성은 보장되지 않습니다.
메타 데이터. ASSEMBLY_TOKEN assembly_id = A, $token_id 정보를 제공하기 위해서만 확인됩니다. 지원 안 됨 향후 호환성은 보장되지 않습니다.
METADATA.ASSYMMETRIC_KEY asymmetric_key_id = A 정보를 제공하기 위해서만 확인됩니다. 지원 안 됨 향후 호환성은 보장되지 않습니다.
메타 데이터. 감사 audit_id = A 정보를 제공하기 위해서만 확인됩니다. 지원 안 됨 향후 호환성은 보장되지 않습니다.
메타 데이터. AUDIT_ACTIONS device_id = D, major_id = M 정보를 제공하기 위해서만 확인됩니다. 지원 안 됨 향후 호환성은 보장되지 않습니다.
METADATA.AUDIT_SPECIFICATION audit_specification_id = A 정보를 제공하기 위해서만 확인됩니다. 지원 안 됨 향후 호환성은 보장되지 않습니다.
메타 데이터. AVAILABILITY_GROUP availability_group_id = A 정보를 제공하기 위해서만 확인됩니다. 지원 안 됨 향후 호환성은 보장되지 않습니다.
METADATA.CERTIFICATE certificate_id = C 정보를 제공하기 위해서만 확인됩니다. 지원 안 됨 향후 호환성은 보장되지 않습니다.
메타 데이터. CHILD_INSTANCE $hash = H1:H2:H3 정보를 제공하기 위해서만 확인됩니다. 지원 안 됨 향후 호환성은 보장되지 않습니다.
메타 데이터. COMPRESSED_FRAGMENT object_id = O , compressed_fragment_id = C 정보를 제공하기 위해서만 확인됩니다. 지원 안 됨 향후 호환성은 보장되지 않습니다.
메타 데이터. COMPRESSED_ROW object_id = O 정보를 제공하기 위해서만 확인됩니다. 지원 안 됨 향후 호환성은 보장되지 않습니다.
메타 데이터. CONVERSTATION_ENDPOINT_RECV $hash = H1:H2:H3 정보를 제공하기 위해서만 확인됩니다. 지원 안 됨 향후 호환성은 보장되지 않습니다.
METADATA.CONVERSTATION_ENDPOINT_SEND $hash = H1:H2:H3 정보를 제공하기 위해서만 확인됩니다. 지원 안 됨 향후 호환성은 보장되지 않습니다.
METADATA.CONVERSATION_GROUP $hash = H1:H2:H3 정보를 제공하기 위해서만 확인됩니다. 지원 안 됨 향후 호환성은 보장되지 않습니다.
메타 데이터. CONVERSATION_PRIORITY conversation_priority_id = C 정보를 제공하기 위해서만 확인됩니다. 지원 안 됨 향후 호환성은 보장되지 않습니다.
메타 데이터. 자격 증명 credential_id = C 정보를 제공하기 위해서만 확인됩니다. 지원 안 됨 향후 호환성은 보장되지 않습니다.
메타 데이터. CRYPTOGRAPHIC_PROVIDER provider_id = P 정보를 제공하기 위해서만 확인됩니다. 지원 안 됨 향후 호환성은 보장되지 않습니다.
메타 데이터. DATA_SPACE data_space_id = D 정보를 제공하기 위해서만 확인됩니다. 지원 안 됨 향후 호환성은 보장되지 않습니다.
메타 데이터. 데이터베이스 database_id = D 정보를 제공하기 위해서만 확인됩니다. 지원 안 됨 향후 호환성은 보장되지 않습니다.
메타 데이터. DATABASE_PRINCIPAL principal_id = P 정보를 제공하기 위해서만 확인됩니다. 지원 안 됨 향후 호환성은 보장되지 않습니다.
메타 데이터. DB_MIRRORING_SESSION database_id = D 정보를 제공하기 위해서만 확인됩니다. 지원 안 됨 향후 호환성은 보장되지 않습니다.
METADATA.DB_MIRRORING_WITNESS $hash = H1:H2:H3 정보를 제공하기 위해서만 확인됩니다. 지원 안 됨 향후 호환성은 보장되지 않습니다.
메타 데이터. DB_PRINCIPAL_SID $hash = H1:H2:H3 정보를 제공하기 위해서만 확인됩니다. 지원 안 됨 향후 호환성은 보장되지 않습니다.
METADATA.ENDPOINT endpoint_id = E 정보를 제공하기 위해서만 확인됩니다. 지원 안 됨 향후 호환성은 보장되지 않습니다.
메타 데이터. ENDPOINT_WEBMETHOD $hash = H1:H2:H3 정보를 제공하기 위해서만 확인됩니다. 지원 안 됨 향후 호환성은 보장되지 않습니다.
메타 데이터. FULLTEXT_CATALOG fulltext_catalog_id = F 정보를 제공하기 위해서만 확인됩니다. 지원 안 됨 향후 호환성은 보장되지 않습니다.
메타 데이터. FULLTEXT_INDEX object_id = O 정보를 제공하기 위해서만 확인됩니다. 지원 안 됨 향후 호환성은 보장되지 않습니다.
메타 데이터. EXPR_COLUMN object_id = O, column_id = C 정보를 제공하기 위해서만 확인됩니다. 지원 안 됨 향후 호환성은 보장되지 않습니다.
메타 데이터. EXPR_HASH object_id = O, $hash = H 정보를 제공하기 위해서만 확인됩니다. 지원 안 됨 향후 호환성은 보장되지 않습니다.
메타 데이터. FULLTEXT_CATALOG fulltext_catalog_id = F 정보를 제공하기 위해서만 확인됩니다. 지원 안 됨 향후 호환성은 보장되지 않습니다.
메타 데이터. FULLTEXT_INDEX object_id = O 정보를 제공하기 위해서만 확인됩니다. 지원 안 됨 향후 호환성은 보장되지 않습니다.
메타 데이터. FULLTEXT_STOPLIST fulltext_stoplist_id = F 정보를 제공하기 위해서만 확인됩니다. 지원 안 됨 향후 호환성은 보장되지 않습니다.
메타 데이터. INDEX_EXTENSION_SCHEME index_extension_id = I 정보를 제공하기 위해서만 확인됩니다. 지원 안 됨 향후 호환성은 보장되지 않습니다.
메타 데이터. INDEXSTATS object_id = O, index_id 또는 stats_id = I 정보를 제공하기 위해서만 확인됩니다. 지원 안 됨 향후 호환성은 보장되지 않습니다.
METADATA.INSTANTIATED_TYPE_HASH user_type_id = U, hash = H 정보를 제공하기 위해서만 확인됩니다. 지원 안 됨 향후 호환성은 보장되지 않습니다.
메타 데이터. 메시지 message_id = M 정보를 제공하기 위해서만 확인됩니다. 지원 안 됨 향후 호환성은 보장되지 않습니다.
메타 데이터. METADATA_CACHE $hash = H1:H2:H3 정보를 제공하기 위해서만 확인됩니다. 지원 안 됨 향후 호환성은 보장되지 않습니다.
메타 데이터. PARTITION_FUNCTION function_id = F 정보를 제공하기 위해서만 확인됩니다. 지원 안 됨 향후 호환성은 보장되지 않습니다.
메타 데이터. PASSWORD_POLICY principal_id = P 정보를 제공하기 위해서만 확인됩니다. 지원 안 됨 향후 호환성은 보장되지 않습니다.
메타 데이터. 권한을 class = C 정보를 제공하기 위해서만 확인됩니다. 지원 안 됨 향후 호환성은 보장되지 않습니다.
메타 데이터. PLAN_GUIDE plan_guide_id = P 정보를 제공하기 위해서만 확인됩니다. 지원 안 됨 향후 호환성은 보장되지 않습니다.
메타 데이터. PLAN_GUIDE_HASH $hash = H1:H2:H3 정보를 제공하기 위해서만 확인됩니다. 지원 안 됨 향후 호환성은 보장되지 않습니다.
METADATA.PLAN_GUIDE_SCOPE scope_id = S 정보를 제공하기 위해서만 확인됩니다. 지원 안 됨 향후 호환성은 보장되지 않습니다.
메타 데이터. Qname $qname_id = Q 정보를 제공하기 위해서만 확인됩니다. 지원 안 됨 향후 호환성은 보장되지 않습니다.
메타 데이터. QNAME_HASH $qname_scope_id = Q, $qname_hash = H 정보를 제공하기 위해서만 확인됩니다. 지원 안 됨 향후 호환성은 보장되지 않습니다.
메타 데이터. REMOTE_SERVICE_BINDING remote_service_binding_id = R 정보를 제공하기 위해서만 확인됩니다. 지원 안 됨 향후 호환성은 보장되지 않습니다.
메타 데이터. 경로 route_id = R 정보를 제공하기 위해서만 확인됩니다. 지원 안 됨 향후 호환성은 보장되지 않습니다.
메타 데이터. 스키마 schema_id = S 정보를 제공하기 위해서만 확인됩니다. 지원 안 됨 향후 호환성은 보장되지 않습니다.
메타 데이터. SECURITY_CACHE $hash = H1:H2:H3 정보를 제공하기 위해서만 확인됩니다. 지원 안 됨 향후 호환성은 보장되지 않습니다.
메타 데이터. SECURITY_DESCRIPTOR sd_id = S 정보를 제공하기 위해서만 확인됩니다. 지원 안 됨 향후 호환성은 보장되지 않습니다.
METADATA.SEQUENCE $seq_type = S, object_id = O 정보를 제공하기 위해서만 확인됩니다. 지원 안 됨 향후 호환성은 보장되지 않습니다.
METADATA.SERVER server_id = S 정보를 제공하기 위해서만 확인됩니다. 지원 안 됨 향후 호환성은 보장되지 않습니다.
메타 데이터. SERVER_EVENT_SESSIONS event_session_id = E 정보를 제공하기 위해서만 확인됩니다. 지원 안 됨 향후 호환성은 보장되지 않습니다.
메타 데이터. SERVER_PRINCIPAL principal_id = P 정보를 제공하기 위해서만 확인됩니다. 지원 안 됨 향후 호환성은 보장되지 않습니다.
메타 데이터. 서비스 service_id = S 정보를 제공하기 위해서만 확인됩니다. 지원 안 됨 향후 호환성은 보장되지 않습니다.
메타 데이터. SERVICE_BROKER_GUID $hash = H1:H2:H3 정보를 제공하기 위해서만 확인됩니다. 지원 안 됨 향후 호환성은 보장되지 않습니다.
메타 데이터. SERVICE_CONTRACT service_contract_id = S 정보를 제공하기 위해서만 확인됩니다. 지원 안 됨 향후 호환성은 보장되지 않습니다.
메타 데이터. SERVICE_MESSAGE_TYPE message_type_id = M 정보를 제공하기 위해서만 확인됩니다. 지원 안 됨 향후 호환성은 보장되지 않습니다.
메타 데이터. 통계 object_id = O, stats_id = S 정보를 제공하기 위해서만 확인됩니다. 지원 안 됨 향후 호환성은 보장되지 않습니다.
메타 데이터. SYMMETRIC_KEY symmetric_key_id = S 정보를 제공하기 위해서만 확인됩니다. 지원 안 됨 향후 호환성은 보장되지 않습니다.
메타 데이터. 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 정보를 제공하기 위해서만 확인됩니다. 지원 안 됨 향후 호환성은 보장되지 않습니다.

예제

A. 다른 도구와 함께 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);
INSERT INTO t_lock VALUES (2, 2);
INSERT INTO t_lock VALUES (3, 3);
INSERT INTO t_lock VALUES (4, 4);
INSERT INTO t_lock VALUES (5, 5);
INSERT INTO t_lock VALUES (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> fromsys.databases으로 database_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), *
    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

다음 예제에서는 Windows 스레드 ID와 연결하는 session_id 정보를 반환합니다. 스레드의 성능은 Windows 성능 모니터 모니터링할 수 있습니다. 이 쿼리는 현재 절전 모드인 쿼리를 session_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