sys.syslockinfo(Transact-SQL)

적용 대상:SQL Server

부여된 모든 잠금 요청, 변환 및 대기 중인 모든 요청에 대한 정보를 포함합니다.

Important

이 SQL Server 2000 시스템 테이블은 이전 버전과의 호환성을 위한 보기로 포함되어 있습니다. 대신 현재 SQL Server 시스템 뷰를 사용하는 것이 좋습니다. 동등한 시스템 뷰 또는 뷰를 찾으려면 시스템 테이블을 시스템 뷰에 매핑(Transact-SQL)을 참조하세요. Microsoft SQL Server의 이후 버전에서는 이 기능이 제거됩니다. 새 개발 작업에서는 이 기능을 사용하지 않도록 하고, 현재 이 기능을 사용하는 애플리케이션은 수정하세요.

Important

이 기능은 이전 버전의 SQL Server에서 변경되었습니다. 자세한 내용은 SQL Server 2016의 데이터베이스 엔진 기능에 대한 주요 변경 내용을 참조하세요.

열 이름 데이터 형식 설명
rsc_text nchar(32) 잠금 리소스에 대한 텍스트 설명입니다. 리소스 이름의 일부를 포함합니다.
rsc_bin binary(16) 이진 잠금 리소스입니다. 잠금 관리자에 있는 실제 잠금 리소스를 포함합니다. 이 열은 자체 형식의 잠금 리소스를 생성하고 syslockinfo에서 자체 조인을 수행하기 위한 잠금 리소스 형식에 대해 알고 있는 도구에 포함됩니다.
rsc_valblk binary(16) 잠금 값 블록입니다. 일부 리소스 유형에는 잠금 관리자가 특정 잠금 리소스의 소유권을 확인하기 위해 해시되지 않은 잠금 리소스에 추가 데이터가 포함될 수 있습니다. 예를 들어 페이지 잠금은 특정 개체 ID가 소유하지 않습니다. 페이지 잠금을 소유할 수 없습니다. 그러나 페이지 잠금의 개체 ID를 잠금 값 블록에 포함할 수는 있습니다.
rsc_dbid smallint 리소스와 연관된 데이터베이스 ID입니다.
rsc_indid smallint 적절한 경우 리소스와 연결된 인덱스 ID입니다.
rsc_objid int 리소스와 연관된 개체 ID입니다. 해당되는 경우에 한합니다.
rsc_type tinyint 리소스 종류:

1 = NULL 리소스(사용되지 않음)

2 = 데이터베이스

3 = 파일

4 = 인덱스

5 = 테이블

6 = 페이지

7 = 키

8 = 익스텐트

9 = RID(행 ID)

10 = 애플리케이션
rsc_flag tinyint 내부 리소스 플래그입니다.
req_mode tinyint 잠금 요청 모드입니다. 이 열은 요청자의 잠금 모드이며 부여된 모드 또는 변환 또는 대기 모드를 나타냅니다.

0 = NULL입니다. 리소스에 허가된 액세스가 없습니다. 자리 표시자 역할을 합니다.

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

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

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

4 = U(업데이트). 업데이트될 리소스에 대해 업데이트 잠금을 획득하도록 합니다. 여러 세션이 향후 잠재적 업데이트를 위해 리소스를 잠글 때 발생하는 일반적인 형태의 교착 상태를 방지하는 데 사용됩니다.

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

6 = IS(의도 공유). 잠금 계층 구조의 일부 하위 리소스에 S 잠금을 설정하려는 의도를 표시합니다.

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

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

9 = SIU(공유 의도 업데이트). 잠금 계층 구조의 하위 리소스에 대한 업데이트 잠금을 획득하기 위해 리소스에 대한 공유된 액세스를 표시합니다.

10 = SIX(공유 의도 배타적). 잠금 계층 구조의 하위 리소스에 대한 배타적 잠금을 획득하기 위해 리소스에 대한 공유된 액세스를 표시합니다.

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

12 = BU. 대량 작업에 사용합니다.

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

14 = RangeS_U(공유 키 범위 및 업데이트 리소스 잠금) - 직렬화 가능 업데이트 검색을 표시합니다.

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

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

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

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

19 = RangeX_S. RangeI_N 잠금과 RangeS_S 잠금의 겹쳐진 부분에 의해 생성된 키 범위 변환 잠금.

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

21 = RangeX_X(배타적 키 범위 및 배타적 리소스 잠금) - 범위에서 키를 업데이트할 때 사용되는 변환 잠금입니다.
req_status tinyint 잠금 요청의 상태:

1 = 허용됨

2 = 변환 중

3 = 대기 중
req_refcnt smallint 잠금 참조 수입니다. 트랜잭션이 특정 리소스에 대한 잠금을 요청할 때마다 참조 수가 증가합니다. 참조 수가 0이 될 때까지 잠금을 해제할 수 없습니다.
req_cryrefcnt smallint 나중에 사용할 수 있습니다. 항상 0으로 설정합니다.
req_lifetime int 잠금 수명 비트맵입니다. 특정 쿼리 처리 전략 중에는 쿼리 프로세서가 쿼리의 특정 단계를 완료할 때까지 리소스에서 잠금을 유지 관리해야 합니다. 잠금 수명 비트맵은 쿼리 프로세서 및 트랜잭션 관리자가 쿼리의 특정 단계 실행을 완료할 때 해제할 수 있는 잠금 그룹을 나타내는 데 사용됩니다. 비트맵의 특정 비트는 참조 수가 0인 경우에도 트랜잭션이 끝날 때까지 유지되는 잠금을 나타내는 데 사용됩니다.
req_spid int 잠금을 요청하는 세션의 내부 Microsoft SQL Server 데이터베이스 엔진 프로세스 ID입니다.
req_ecid int 실행 컨텍스트 ID(ECID)입니다. 병렬 작업에서 특정 잠금을 소유하는 스레드를 나타내는 데 사용됩니다.
req_ownertype smallint 다음은 잠금과 연관된 개체의 유형입니다.

1 = 트랜잭션

2 = 커서

3 = 세션

4 = ExSession

3과 4는 각각 세션 잠금의 특별한 버전인 데이터베이스 추적 및 파일 그룹 잠금을 나타냅니다.
req_transactionID bigint syslockinfo 및 프로파일러 이벤트에서 사용되는 고유 트랜잭션 ID
req_transactionUOW uniqueidentifier DTC 트랜잭션의 UOW(작업 단위 ID)를 식별합니다. MS가 아닌 DTC 트랜잭션의 경우 UOW는 0으로 설정됩니다.

사용 권한

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

참고 항목

시스템 테이블을 시스템 뷰에 매핑(Transact-SQL)
호환성 뷰(Transact-SQL)