잠금 에스컬레이션(Lock Escalation)

 

많은 수의 미세 잠금을 더 적은 수의 큰 잠금으로 변환

동시성 경합 가능성 ↑, 시스템 오버헤드 ↓ 프로세스이다.

 

● 행 또는 인덱스 키 범위를 잠그는 경우 → 행 또는 키를 포함하는 페이지에도 의도 잠금 배치

 

● 페이지를 잠그는 경우 → 페이지를 포함하는 더 상위 수준의 개체에 의도 잠금 배치

 

잠금 에스컬레이션 임계값 - ALTER TABLE SET LOCK_ESCALATION

 

단일 Transaction-SQL 문이 분할 되지 않은 단일 테이블이나 인덱스에 대해 5,000개 이상의 잠금을 획득한 경우(ex 5천개의 행 잠금)

 

5천개 이상 잠기면 데이터베이스 엔진은 에스컬레이션을 진행시키려 한다.

 

'MSSQL 2008 > 트랜잭션과 락' 카테고리의 다른 글

잠금 호환성 매트릭스(잠금호환표)  (0) 2014.02.05
트랜잭션 관련 명령어들  (0) 2014.01.14
잠금 관련 명령어들  (0) 2014.01.14
by 짱구를꼭말려 2014. 2. 5. 11:07

 전체 잠금 호환성 매트릭스 

 

Microsoft SQL Server에서 사용할 수 있는 모든 잠금 모드의 호환성을 확인할 수 있는 표

 

 

 

 

 

'MSSQL 2008 > 트랜잭션과 락' 카테고리의 다른 글

잠금 에스컬레이션(Lock Escalation)  (0) 2014.02.05
트랜잭션 관련 명령어들  (0) 2014.01.14
잠금 관련 명령어들  (0) 2014.01.14
by 짱구를꼭말려 2014. 2. 5. 10:16

Select @@TRANCOUNT : 현재 동작중인 트랜잭션의 갯수

by 짱구를꼭말려 2014. 1. 14. 15:46

DBCC INPUTBUFFER(spid) : SPID가 마지막으로 사용한 명령문에 대한 정보 SQL Server 2005 Bible 696p.

 

SP_LOCK : 현재 락 상태를 확인할 수 있다. ( sp_lock [[@spid1 = ] 'spid1' ]  [,[@spid2 = ] 'spid2'] )

exec sp_lock @@spid - @@SPID는 현재 사용자의 프로세스의 서버 프로세스 식별자(SPID) 값을 반환한다.

열 이름 

 설명

Spid 

SQL Server 프로세스 ID 

dbid 

잠금을 요청하는 DB ID (DB이름확인 : DB_NAME(dbid)

objid 

잠금을 요청하는 개체의 개체 ID ( 개체 이름 확인 : OBJECT_NAME(objid) )

Indid 

인덱스 ID 

Type 

잠금 유형

- DB = 데이터베이스, - FIL = 파일

- IDX = 인덱스, - PG = 페이지

- KEY = 키, -TAB = 테이블

- EXT = 익스텐트, - RID = 행 식별자

Resource 

syslockinfo.restext의 값에 해당하는 잠금 리소스 

Mode 

잠금 요청자의 잠금모드로 허가된 모드, 변환 모드 또는 대기 모드를 표시 

S, U, X, IS, IU, IX, SIX, Sch-S, Sch-M, BU(Bulk update) 등

status 

잠금 요청 상태로 허가,대기,변환 중 하나의 값을 가진다 

GRANT, WAIT 등

bible 702p

 

SP_WHO : 현재 락 상태를 확인 ( SP_WHO [[@login_name = ] 'login' ] )

컬럼 

설명 

spid 

시스템 프로세스 ID 

ecid 

특정 SPID와 관련된주어진 스레드의 실행 컨텍스트 ID 

status

프로세스 상태 

loginame 

특정 프로세스와 관련된 로그인 이름 

hostname 

각 프로세스의 호스트 또는 컴퓨터 이름 

blk 

프로세스를 차단하는 데 필요한 시스템 프로세스 ID 

dbname 

프로세스가 사용하는 데이터베이스 

cmd 

Transact-SQL문 

또한, SP_LOCK 53 과 같이 SPID를 명시하면 특정 SPID의 락 상태를 확인가능

 

SSMS의 GUI환경에서 락을 관리할 수도 있다. 관리 - 작업모니터를 실행.

 

DBCC USEROPTIONS : 트랜잭션의 격리 수준을 확인 및 암시적 트랜잭션 모드 확인(impicit_transaction 옵션이 SET이면 ON, 아예 없으면 OFF)

by 짱구를꼭말려 2014. 1. 14. 14:44
| 1 |