본문으로 바로가기

Oracle Lock Session 생성

category oracleDB/ETC 2019. 8. 31. 15:34
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