728x90
Lock
Lock은 다수의 사용자가 Database에 동시에 접근하여 작업할 때 무결성을 유지하기 위한 기능.
Lock 종류
1. Row Lock
- Insert, Delete, Update문을 Where 조건을 걸어 해당되는 Row를 Lock 하는 형식
이 문장을 실행한 사용자가 Commit이나 Rollback을 할 때까지 다른 사용자가 변경할 수 없음
2. Table Lock
- Row Lock이 걸린 Row가 저장된 Table에 대한 Lock을 걸 수 있음
- Insert, Delete, Update도중 테이블이 Alter나 Drop되는것을 방지하기 위함
Row Lock 예시
1. 테스트 할 테이블 생성 (테이블 없을 경우)
create table locktest1 (
a number(10),
b number(10)
);
2. 두개의 Session Open
3. Session 1에서 Data Insert (Row가 없을 경우)
insert into locktest1 values (1,1);
commit;
4. Session 2에서 for update 문 사용
select * from locktest1 for update;
5. Session 1에서 for update문 사용
select * from locktest1 for update;
이 경우 Session 1에서 Lock이 걸리는 것을 확인 할 수 있음
'oracleDB > ETC' 카테고리의 다른 글
DataBase Link (DBLINK) (0) | 2019.12.10 |
---|---|
사용된 SQL문 확인 쿼리 (0) | 2019.11.17 |
병렬 쿼리 (PARALLEL) (0) | 2019.11.12 |
TM lock script (0) | 2019.10.29 |