반응형

Transaction Isolation Level


Mssql를 처음 사용하면서 SP(저장 프로시저) 라는 것을 처음 접했고, 어려움을 겪고 있네요! 후!

Isolation Level 이란 트랜잭션에서 일관성이 없는 데이터를 허용하도록 하는 수준

또한, 어떤 데이터를 수정하고 있는 경우 다른 사용자들이 해당 데이터에 접근하는 것을 차단 또는 읽기 작업을 수행할 수 있도록 

Isolation Level을 변경할 수 있다.


SET TRANSACTION ISOLATION LEVEL
{
READ COMMITTED
| READ UNCOMMITTED
| REPEATABLE READ
| SERIALIZABLE
}


- 네 종류의 Transaction Isolation Level 을 정리하면,


1. Read Uncommitted Isolation Level

 사용자가 'A' 라는 데이터를 'B' 라는 데이터로 변경 하는 동안 다른 사용자는 아직 완료되지 않은 데이터 'B'를 읽을 수 있다

 즉, 'Shared Lock' 이 걸리지 않는다.


2. Read Committed Isolation Level (SQL Server Default 값)

 사용자가 'A' 라는 데이터를 변경하는 동안 다른 사용자는 해당 데이터에 접근 할 수 없다.

 즉, 'Shared Lock'


3. Repeatable Read Isolation Level

 트랜잭션이 완료되는 동안 Select 문장이 사용하는 모든 데이터는 'Shared Lock' 상태 

 다른 사용자는 해당 영역에 해당되는 데이터 수정 불가능


4. Serializable Isolation Level

 트랜잭션이 완료되는 동안 Select 문장이 사용하는 모든 데이터는 'Shared Lock' 상태

 다른 사용자는 해당 영역에 해당되는 데이터 수정 및 입력 불가능



[출처 : https://support.microsoft.com/ko-kr/help/601430]


반응형

'DB > MSSQL' 카테고리의 다른 글

OFFSET ROWS FETCH 페이징 처리  (0) 2020.10.19
ALTER 문  (0) 2020.07.22
무결성 제약조건 CHECK  (0) 2020.07.12
문자열 char / varchar / nchar / nvarchar  (0) 2020.07.12
날짜 형식 변환  (0) 2020.04.17

+ Recent posts