mssql waitresource 기반 page정보로 table 및 index 확인
[waiteresource 정보]
RID. 잠금이 보유 또는 요청된 테이블 내의 단일 행을 식별합니다. RID는 RID: db_id:file_id:page_no:row_no로 표시됩니다. 예를 들면 RID: 6:1:20789:0과 같습니다.
OBJECT. 잠금이 보유 또는 요청된 테이블을 식별합니다. OBJECT는 OBJECT: db_id:object_id로 표시됩니다. 예를 들면 TAB: 6:2009058193과 같습니다.
KEY. 잠금이 보유 또는 요청된 인덱스 내의 키 범위를 식별합니다. KEY는 KEY: db_id:hobt_id (index key hash value)로 표시됩니다. 예를 들면 KEY: 6:72057594057457664 (350007a4d329)와 같습니다.
PAG. 잠금이 보유 또는 요청된 페이지 리소스를 식별합니다. PAG는 PAG: db_id:file_id:page_no로 표시됩니다. 예를 들면 PAG: 6:1:20789와 같습니다.
EXT. 익스텐트 구조를 식별합니다. EXT는 EXT: db_id:file_id:extent_no로 표시됩니다. 예를 들면 EXT: 6:1:9와 같습니다.
DB. 데이터베이스 잠금을 식별합니다. DB는 다음 방법 중 하나로 표시됩니다.
DB: db_id
DB: db_id[BULK-OP-DB]. 이 방법은 백업 데이터베이스에서 수행된 데이터베이스 잠금을 식별합니다.
DB: db_id[BULK-OP-LOG]. 이 방법은 특정 데이터베이스에 대해 백업 로그에서 수행된 잠금을 식별합니다.
APP. 응용 프로그램 리소스에서 수행된 잠금을 식별합니다. APP는 APP: lock_resource로 표시됩니다. 예를 들면 APP: Formf370f478과 같습니다
[확인 예시]
waitresource = 11:24:3169121 -> 첫 번째 값은 DB 아이디.
DBCC traceon (3604) WITH no_infomsgs
DBCC PAGE (11,24,3169121) with no_infomsgs, tableresults
ParentObject Object Field VALUE
PAGE HEADER: Page @0x000000095145E000 m_objId (AllocUnitId.idObj) 16431
PAGE HEADER: Page @0x000000095145E000 m_indexId (AllocUnitId.idInd) 256
PAGE HEADER: Page @0x000000095145E000 Metadata: AllocUnitId 7.20576E+16
PAGE HEADER: Page @0x000000095145E000 Metadata: PartitionId 7.20576E+16
PAGE HEADER: Page @0x000000095145E000 Metadata: IndexId 2 <---- 인덱스 아이디
PAGE HEADER: Page @0x000000095145E000 Metadata: ObjectId 132468542 <---- 테이블 아이디
object_id 값과 index 값을 알았으니 어느 테이블에 어느 객체인지 확인 하면 된다.
select * from sys.objects where object_id = 132468542
tblPlayer 132468542 NULL 1 0 U USER_TABLE 2021-01-07 08:27:49.803 2021-01-07 08:27:49.823 0 0 0
select * from sys.indexes where object_id = 132468542 and index_id = 2
132468542 PK_tblPlayer 2 2 NONCLUSTERED 1 2 0 1 0 80 0 0 0 1 1 0 NULL NULL
결론 : tblPlayer 테이블의 PK_tblPlayer 인덱스에서 잠금이 발생
참고 : https://ceusee.tistory.com/140 [Bora.Choi]
'DB Skill > MSSQL' 카테고리의 다른 글
mssql 형변환 잘못된 쿼리 확인 (0) | 2021.08.19 |
---|---|
mssql vlf count 확인 및 축소 (0) | 2021.08.19 |
mssql 사용자 데이터베이스 이동(mdf, ldf 위치 변경) (0) | 2021.08.19 |
mssql tempdb 물리적 위치 변경 (0) | 2021.08.18 |
mssql table identity 확인 및 변경 ( DBCC CHECKIDENT 사용 ) (0) | 2021.08.18 |