Transaction
- 논리적인 작업의 최소 단위
- 명시적/암시적으로 시작(Begin Tran)과 끝(Commit/Rollback)의 처리 범위를 지정
Transaction 4가지 속성 ACID
- 원자성(Atomicity)
- 일관성(Consistency)
- 고립성(Isolation)
- 보존성(Durability)
고립성
- 하나의 트랜잭션 발생 시, 다른 트랜잭션에 대한 방해받지 않고 독립성을 가지냐
SQL Server 격리수준(Isolation Level)
- Read Uncommittes (커밋되지 않은 읽기)
일반적으로 업데이트 시, 커밋되지 않은 데이터는 배타점 잠금(X-Lock)이 걸려 있기에
다른 프로세스에서 읽기조차 되지 않는다.
업데이트 되지 않은 데이터를 읽을 수 있다는 것이 무결성을 개트릴 위험 존재하다.
일반적으로 Select시에도 공유잠금이라는 것을 요청 하게 된다.
커밋되지 않은 데이터를 읽기 때문에 일관성이 떨어진다.
다만 동시성이 좋기 때문에 OLTP 환경에서 가장 흔하게 쓰이는 격리 수준이다.
- Read Committed (커밋된 읽기)
SQL Server의 기본 격리 수준
데이터를 읽기 위해서 기본적으로 공유잠금을 요청한다.
UPDATE를 실행중인 데이터를 Select시 배타적잠금이 걸려 있는 데이터에 공유 잠금을 요청
하기 때문에 UPDATE 종료 후 Select가 된다.
- Repeatable Read (반복 읽기)
- Serializabale (직렬화)
- Snapshot (스냅샷)
- Read Committed Snapsho (커밋된 읽기)
'개발 > 기타' 카테고리의 다른 글
아이폰 꿀팁 월렛(Wallet) 사용법! (2) | 2019.06.03 |
---|---|
visual studio 단축키 (0) | 2018.08.07 |
코딩 색깔 입히기 (0) | 2016.03.08 |