래치가 SGA를 보호한다면, 락은 데이터베이스 전체를 보호한다?




Table lock
sql > lock table 테이블명 in 모드 mode [대기시간];


LOCK Mode

ⓐSHARE (S)
: 동시성 질의를 허용하다, update, insert, delete 불가

ⓑEXCLUSIVE (X)
: 배타적인 질의 처리 허용. 어떠한 lock도 걸 수 없음. drop table, alter table등의 ddl 문장에서 의해 생기는 테이블 lock

ⓒROW SHARE (RS)
: 동시성 접근 허용, exclusive access를 위한 전체 테이블에 대한 locking 금지
: select~from~where~for update of~; 또는 lock table ~ in row share mode;명렁에 의해 발생
: RS lock -> RS, RX, S,SRX lock은 가능하나, X lock은 불가

ⓓROW EXCLUSIVE (RX)
: 동시성 접근 허용, exclusive access를 위한 전체 테이블에 대한 locking 금지
: ROW EXCLUSIVE mode가 설정되어 있는 경우, SHARE mode의 locking은 거부한다.
: ROW EXCLUSIVE mode는 update, insert, delete시에 자동으로 부여된다.

ⓔSHARE ROW EXCLUSIVE (SRX)
: table 전체 탐색이나 다른 사용자에게 table의 row들을 탐색하게 할 때 사용한다.
: SHARE mode의 lock이 부여된 table이나 update되고 있는 row들에 대한 다른 사용자의 접근은 금지한다.



[참고]

+ Recent posts