티스토리 뷰

데이터베이스/MSSQL

sp_lock

메모하는습관 2009. 7. 15. 15:48


sp_lock는 lock에 대한 정보를 반환 한다.

아래의 표를 보면 exec sp_lock를 실행 했을 경우 결과 필드에 대한 설명이다.

열 이름 데이터 형식 설명
spid smallint 잠금을 요청하는 프로세스의 데이터베이스 엔진 세션 ID입니다.
dbid smallint 잠금이 설정된 데이터베이스의 ID입니다. DB_NAME() 함수를 사용하여 데이터베이스를 식별할 수 있습니다.
ObjId int 잠금이 설정된 개체의 ID입니다. 관련 데이터베이스에서 OBJECT_NAME() 함수를 사용하여 개체를 식별할 수 있습니다. 값 99는 특별한 경우로서 데이터베이스에서 페이지 할당을 기록하는 데 사용되는 시스템 페이지 중 하나에 대한 잠금을 나타냅니다.
IndId smallint 잠금이 설정된 인덱스의 ID입니다.
Type nchar(4) 잠금 유형입니다.
RID = RID(행 식별자)로 식별되는 테이블의 단일 행에 대한 잠금입니다.
KEY = 직렬화할 수 있는 트랜잭션에서 키의 범위를 보호하는 인덱스 내의 잠금입니다.
PAG = 데이터 또는 인덱스 페이지에 대한 잠금입니다.
EXT = 익스텐트에 대한 잠금입니다.
TAB = 모든 데이터와 인덱스가 포함된 전체 테이블에 대한 잠금입니다.
DB = 데이터베이스에 대한 잠금입니다.
FIL = 데이터베이스 파일에 대한 잠금입니다.
APP = 응용 프로그램이 지정한 리소스에 대한 잠금입니다.
MD = 메타데이터 또는 카탈로그 정보에 대한 잠금입니다.
HBT = 힙 또는 B-트리 인덱스에 대한 잠금입니다. 이 정보는 SQL Server에서는 완전하지 않습니다.
AU = 할당 단위에 대한 잠금입니다. 이 정보는 SQL Server에서는 완전하지 않습니다.
Resource nchar(32) 잠긴 리소스를 식별하는 값입니다. 값의 형식은 다음과 같이 Type 열에서 식별된 리소스의 유형에 따라 달라집니다.
Type 값: Resource
RID : fileid:pagenumber:rid 형식의 식별자입니다. 여기서 fileid는 페이지가 포함된 파일을 식별하고 pagenumber는 행이 포함된 페이지를 식별하며 rid는 페이지의 특정 행을 식별합니다. fileid는 sys.database_files 카탈로그 뷰에 있는 file_id 열과 일치합니다.
KEY: 데이터베이스 엔진에서 내부적으로 사용되는 16진수입니다.
PAG: fileid:pagenumber 형식의 수입니다. fileid는 페이지가 포함된 파일을 식별하고 pagenumber는 페이지를 식별합니다.
EXT: 익스텐트의 첫 번째 페이지를 식별하는 번호입니다. 이 번호의 형식은 fileid:pagenumber입니다.
TAB: 테이블이 ObjId 열에서 이미 식별되었으므로 정보가 제공되지 않습니다.
DB: 데이터베이스가 dbid 열에서 이미 식별되었으므로 정보가 제공되지 않습니다.
FIL: sys.database_files 카탈로그 뷰에 있는 file_id 열과 일치하는 파일의 식별자입니다.
APP: 잠긴 응용 프로그램 리소스의 고유 식별자입니다. 형식은 DbPrincipleId:<리소스 문자열의 처음 2자부터 16자까지><해시된 값>입니다.
MD: 리소스 유형에 따라 달라집니다. 자세한 내용은 sys.dm_tran_locks(Transact-SQL)의 resource_description 열에 대한 설명을 참조하십시오.
HBT : 정보가 제공되지 않습니다. 대신 sys.dm_tran_locks 동적 관리 뷰를 사용하십시오.
AU: 정보가 제공되지 않습니다. 대신 sys.dm_tran_locks 동적 관리 뷰를 사용하십시오.
Mode nvarchar(8) 요청한 잠금 모드입니다. 다음 값 중 하나일 수 있습니다.
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 잠금의 겹침으로 생성된 키 범위 변환 잠금.
RangeI_X_S = RangeI_N 및 RangeS_S 잠금의 겹침으로 생성된 키 범위 변환 잠금.
RangeI_X_U = RangeI_N 및 RangeS_U 잠금의 겹침으로 생성된 키 범위 변환 잠금.
RangeX_X = 배타 키 범위 및 배타 리소스 잠금. 범위 내에서 키를 업데이트할 때 사용되는 변환 잠금입니다.
Status nvarchar(5) 잠금 요청 상태입니다.
CNVRT: 다른 모드에서 잠금을 변환하는 중 충돌하는 모드의 잠금을 보유한 다른 프로세스로 인해 변환이 차단되었습니다.
GRANT: 잠금을 획득했습니다.
WAIT: 충돌하는 모드의 잠금을 보유한 다른 프로세스로 인해 잠금이 차단되었습니다.
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday