투케이2K
103. (DB/데이터베이스) 로킹 (Loking) 병행 제어 기법 설명 본문
[학습 구분]
과목 : Database / 데이터베이스
[설 명]
1. 로킹 이란 하나의 트랜잭션이 데이터를 액세스하는 동안 다른 트랜잭션이 그데이터 항목을 액세스할 수 없도록 하는 병행 제어 기법 입니다
2. 로킹 은 어떤 특정 사용자가 파일 (로킹 단위) 을 사용하고 있을 때 , 다른 사용자는 그 파일을 사용하지 못하도록 제어하는 기법 입니다
- 로킹 단위 : 한번에 한명만 사용할 수 있는 단위
- 필드, 레코드, 테이블, 파일, 데이터베이스 모두 로킹 단위가 될 수 있습니다
- ex : 프로젝트에서 로킹 단위를 [폴더] 로 설정한 경우 > [개별 파일] 로 로킹 단위를 설정한 것 보다 [로크의 수] 가 줄어듬 (로킹 단위 관리)
3. 데이터베이스 로킹 병행 제어 :
- 트랜잭션이 어떤 데이터에 접근하고자 할 때 로킹 수행
- 로킹이 되어 있는 데이터에는 다른 트랜잭션이 접근할 수 없음
- 트랜잭션은 로킹이 된 데이터에 대해서만 연산 수행
- [로킹 단위] :
* 로킹 단위 (크다) > 로크의 수 (작다) > 병행 제어 (단순) > 로킹 오버헤드 (감소) > 병행성 수준 (낮음)
* 로킹 단위 (작다) > 로크의 수 (크다) > 병행 제어 (복잡) > 로킹 오버헤드 (증가) > 병행성 수준 (높음)
4. 로킹 문제점 :
- 블로킹 (Blocking) : 로킹으로 인해 특정 세션이 작업을 진행하지 못하는 상태 , 로킹 중인 트랜잭션이 commit 또는 rollback 됨으로써 해제
- 교착상태 (Deadlock) : 두 세션이 각각 Lock을 설정한 리소스를 기다리고 있는 상태(블로킹이 해제되지 않음) , DBMS가 임의로 한 세션을 kill 해야 해제 가능
'DataBase' 카테고리의 다른 글
102. (DB/데이터베이스) 데드 락 (Dead Lock) 교착 상태 설명 (0) | 2022.12.12 |
---|---|
101. (DB/데이터베이스) [MSSQL] ISNUMERIC 정수 값 (숫자) 확인 함수 설명 (0) | 2022.12.10 |
100. (DB/데이터베이스) [ORACLE] any , all 조건 만족 함수 설명 (0) | 2022.12.10 |
99. (DB/데이터베이스) [ORACLE] coalesce 널 NULL 판별 함수 설명 (0) | 2022.12.10 |
98. (DB/데이터베이스) [ORACLE] minus 차집합 출력 함수 설명 (0) | 2022.12.10 |