티스토리 뷰

데이터베이스/MSSQL

sp_lock

메모하는습관 2009.07.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: 충돌하는 모드의 잠금을 보유한 다른 프로세스로 인해 잠금이 차단되었습니다.

'데이터베이스 > MSSQL' 카테고리의 다른 글

[SUM] expression을(를) 데이터 형식 int(으)로 변환하는 중 산술 오버플로 오류가 발생!!  (0) 2009.12.08
dbcc inputbuffer  (0) 2009.07.15
sp_lock  (1) 2009.07.15
LOCK 처리 방법  (0) 2009.07.15
Connection Count  (0) 2009.06.10
테이블 정보  (0) 2009.06.09
댓글
댓글쓰기 폼