sys.dm_tran_locks (Transact-SQL)
적용 대상: Microsoft Fabric의 SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System(PDW) 웨어하우스
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(행 ID) APPLICATION 메타데이터 HOBT(힙 또는 B-트리) ALLOCATION_UNIT XACT(트랜잭션) OIB(온라인 인덱스 빌드) ROW_GROUP |
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 경우 다음 값 중 하나가 있습니다.
|
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_tasks with resource_address 열에 조인할 수 있습니다. |
pdw_node_id |
int | 적용 대상: Azure Synapse Analytics, Analytics Platform System(PDW) 이 배포가 있는 노드의 식별자입니다. |
사용 권한
SQL Server 및 SQL Managed Instance에서는 VIEW SERVER STATE
권한이 필요합니다.
SQL Database Basic, S0 및 S1 서비스 목표 또는 탄력적 풀 내의 데이터베이스에 대해서는 서버 관리자 계정, 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_type
sys.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를 사용할 수 있는 것은 아닙니다. |
KEY | 인덱스의 행을 나타냅니다. | 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 |
OIB | 온라인 인덱스(re)빌드를 나타냅니다. | HoBt ID입니다. 이 값은 에 해당합니다.sys.partitions.hobt_id |
ALLOCATION_UNIT | 인덱스 파티션과 같은 관련 페이지의 집합을 나타냅니다. 각 할당 단위는 단일 IAM(Index Allocation Map) 체인을 처리합니다. | 할당 단위 ID입니다. 이 값은 에 해당합니다.sys.allocation_units.allocation_unit_id |
ROW_GROUP | columnstore 행 그룹을 나타냅니다. | |
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입니다. |
참고 항목
설명서는 일반적으로 인덱스를 참조하여 B-트리라는 용어를 사용합니다. rowstore 인덱스에서 데이터베이스 엔진 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 | 파일 축소 작업. |
호브트. BULK_OPERATION | 스냅샷, 커밋되지 않은 읽기 및 행 버전 관리를 사용하여 커밋된 읽기와 같은 격리 수준에서 동시 검색을 사용하여 힙 최적화 대량 로드 작업 |
호브트. 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를 나타냅니다. |
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>:<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(트랜잭션 ID) 리소스입니다. 최적화된 잠금을 사용하도록 설정하면 발생합니다. |
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
B. 운영 체제 스레드에 세션 정보 연결
다음 예제에서는 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