LOCK (Transaction Lock)

W·2024년 1월 17일
0

MSSQL

목록 보기
21/33

LOCK

종류정의발생 상황
Shared (S)여러 세션에서 동시에 읽기 작업을 허용하는 락으로, 동시 읽기 작업은 가능하지만 쓰기 작업은 차단됩니다.여러 세션이 동시에 동일한 데이터를 읽는 경우
Exclusive (X)하나의 세션만 쓰기 작업을 허용하는 락으로, 쓰기 작업이 진행 중인 동안 다른 세션의 쓰기 및 읽기 작업이 차단됩니다.특정 데이터를 수정 또는 삭제하는 작업이 진행 중인 경우
Update (U)쓰기 작업을 허용하는 락으로, 다른 세션에서도 쓰기 작업을 허용하나, 여러 세션에서 동시에 쓰기 작업을 하려고 할 때 발생합니다.여러 세션이 동시에 동일한 데이터를 수정하려고 할 때 발생하는 충돌 상황을 방지하기 위해 사용됩니다.
Intent (I)하위 수준의 락을 표시하는 락으로, 상위 수준의 락 요청이 발생했음을 나타냅니다.트랜잭션이 상위 수준의 락(예: Exclusive 락)을 요청하기 전에 먼저 하위 수준의 락(예: Shared 락)을 요청하는 경우
Schema (Sch)스키마 변경 또는 스키마의 일관성을 보장하는 락으로, 스키마 변경 작업이 진행 중일 때 발생합니다.테이블이나 뷰 등의 스키마를 변경하는 작업이 진행 중일 때 발생합니다.

Lock Escalation

추가로 읽는 데이터가 많아지면 LOCK의 단위가 Page나 Table로 격상되는 것

기존 상태 (READ COMMITED)

  • KEY단위로 걸려있는 것이 확인된다.
  • 현재 상태에서의 Table은 Intent Shared Lock임을 확인 할 수 있다.

격상 상태

  • Table에 Shared Lock이 걸린것을 확인할 수 있다.

IS( Intent Shared Lock )은 S(Shared Lock)의 대기 상태이다.
S에서 격상되면 IS 이다.

profile
타협하는 순간 발전이 없어

0개의 댓글