본문 바로가기

IT Tech

트랜잭션의 격리수준 (Transaction Isolation Level)

728x90

1. 트랜잭션의 격리수준 간단 정리

 

: 트랜잭션에 일관성이 없는 데이터를 허용하도록 하는 수준을 정의한 것입니다.

 

 

2. WHY ?

 

: 원자적이고 독립적인 수행을 하도록 Locking이라는 개념이 등장하였지만 무조건적인 Locking

으로 동시에 수행되는 많은 트랜잭션들을 순서대로 처리하는 방식으로 구현되면 DB의 성능이

떨어지게 됩니다.

 

 

3. THEN 

 

: WHY의 이유로 효율적인 Locking 방법이 필요하여 Isolation Level개념이 등장합니다.

 

레벨0: 트랜잭션에 처리중인 혹은 아직 커밋되지 않은 데이터를 다른 트랜잭션이 읽는 것을 허용

 

레벨1: 커밋이 이루어진 트랜잭션만 조회할 수 있다(SQL Server가 Default로 사용하고있음)

 

레벨2: 트랜잭션이 시작되기 전에 커밋된 내용에 대해서만 조회할 수 있는 격리수준

 

레벨3: 완벽한 읽기 일관성 모드를 제공한다. 수정 및 입력이 불가능하다.

 

Read Uncommitted -> Read Committed -> Repeatable Read -> Serialize

728x90