Shared/Exclusive Lock 개념IT/DB2019. 10. 24. 09:30
Table of Contents
1) Shared Lock = Read Lock
SELECT 실행 => Shared Lock 설정 => Shared Lock이 걸린 데이터를 다른 트랜잭션들이 단순히 읽어 들여 Shared Lock을 계속 걸 수는 있지만 UPDATE/DELETE 실행(Exclusive Lock)은 불가능하다. 역시, 다른 트랜잭션에 의해 Exclusive Lock(INSERT/UPDATE/DELETE)이 걸린 데이터에는 Shared Lock(SELECT)을 걸 수 없어 읽을 수 없다.
2) Exclusive Lock = Write Lock
INSERT/UPDATE/DELETE 실행 => Exclusive Lock 설정 => 해당 트랜잭션이 완료될 때까지 유지되어 다른 트랜잭션은 해당 데이터에 접근(SELECT/UPDATE/DELETE)할 수 없다. 즉, 다른 트랜잭션에 의해 Shared/Exclusive Lock이 걸린 데이터에는 Shared Lock(SELECT), Exclusive Lock(UPDATE/DELETE)을 걸 수 없다.
SELECT 실행 => Shared Lock 설정 => Shared Lock이 걸린 데이터를 다른 트랜잭션들이 단순히 읽어 들여 Shared Lock을 계속 걸 수는 있지만 UPDATE/DELETE 실행(Exclusive Lock)은 불가능하다. 역시, 다른 트랜잭션에 의해 Exclusive Lock(INSERT/UPDATE/DELETE)이 걸린 데이터에는 Shared Lock(SELECT)을 걸 수 없어 읽을 수 없다.
2) Exclusive Lock = Write Lock
INSERT/UPDATE/DELETE 실행 => Exclusive Lock 설정 => 해당 트랜잭션이 완료될 때까지 유지되어 다른 트랜잭션은 해당 데이터에 접근(SELECT/UPDATE/DELETE)할 수 없다. 즉, 다른 트랜잭션에 의해 Shared/Exclusive Lock이 걸린 데이터에는 Shared Lock(SELECT), Exclusive Lock(UPDATE/DELETE)을 걸 수 없다.
'IT > DB' 카테고리의 다른 글
SELECT ... FOR UPDATE 문 관련 Dead Lock 문제 (0) | 2019.10.31 |
---|---|
Isolation(격리) Level에 대한 정리 (0) | 2019.10.24 |
JOIN ON 절과 WHERE 절에 IS NULL 조건 사용 시의 차이점 (0) | 2018.09.20 |
MSSQL 특정 월의 N번째 특정 요일에 해당하는 날짜 찾기 (0) | 2018.05.15 |
ACID (트랜잭션의 특성 관련..) (0) | 2018.02.14 |
@DEAN :: Dean Story
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!