제7장 Lock과 트랜잭션 동시성 제어
제1절 Lock
제2절 트랜잭션
제3절 동시성 제어
제1절 Lock |
트랜젝션 동시 데이터접근, 무결성, 일관성 유지하기위해 사용 | ||
|
Blocking | Lock 발생 특정세션이 작업을 진행하지못하고 멈춤 1. 트랜젝션 짧게 정의 2. 같은데이터 갱신 동시수행안되게 3. timeout 설정 4. 격리성 5. 대기현상피하게 프로그래밍 |
|
교착상태 | 두 세션이 각각Lock설정한 리소스를 서로 액세스하려고 마주보며진행 | ||
종류 | 1. 공유잠금 | Shared Lock | 읽기작업시 여러 트랜잭션이 동시에 잠금획득가능 |
2. 배타잠금 | Exclusive Lock | 쓰기작업시 하나의 트랜잭션만 잠금 획득 | |
3. 행잠금 | Row Lock | 동시성 높임. | |
4. 테이블잠금 | Table Lock | 테이블 전체 잠금 설정 더 큰 범위 데이터 보호 | |
레벨 | 1. 로우레벨 | 변경하는 row에만 lock 설정 | |
2. 페이지레벨 | 변경하려고 하는 row의 페이지에 row 설정 | ||
3. 익스텐트레벨 | sql server 의경우 하나의 익스텐트가 여덟개 페이지. 8개 페이지가 잠김 | ||
4. 테이블레벡 | 테이블전체, 관련 인덱스 잠김 | ||
5. 데이터베이스레벨 | 데이터베이스 전체 잠김, DB복구, 스키마 변경시 | ||
Escalation | |||
제2절 트랜잭션 |
데이터베이스 작업의 논리적단위, 완전성, 일관성 보장 ACID | ||
특성 | 1. 원자성 | Atomicity | 트랜젝션 작업 모두성공 or 모두 실패 |
2. 일관성 | Consistency | 트랜젝션 완료시 일관된 상태유지 | |
3. 격리성 | Isolation | 독립적 수행, 다른 트랜잭션 받지 않아야. | |
4. 지속성 | Durability | 성공완료시 결과는 영구적 저장. | |
관리기법 | 1. commit | ||
2. rollback | |||
4. savepoint | 트랜잭션 내에서 특정 시점의 저장 지점설정 부분롤백 가능. | ||
제3절 동시성 제어 |
|||
1. 잠금 기반 동시성 제어 Locking-Based Concurrency Control |
2단계 잠금 2PL = 2-Phase Locking |
잠금설정, 해제 두단계, 교착상태 방지 | |
낙관정 동시성제어 Optimistic Concurrency Control |
잠금없이 수행, 커밋시점 충돌검사 | ||
2. 타임 스탬프 기반 동시성 제어 Timestamp-Based Concurrency Control |
각 트랜젝션 타임스탬프 부여, 트랜젝션간 순서 결정, 그 기반 동시성 제어 | ||
3. 다중버전 동시성제어 MVCC Multi-Version Concurrency Control |
데이터 여러버전 유지 = 트랜젝션 시작될때 데이터 스냅샷 사용. 읽기 작업이 쓰기 작업을 방해하지 않도록. |
||
'Data' 카테고리의 다른 글
[1028 SQL]Ⅲ. SQL 고급 활용 및 튜닝-제6장 고급 SQL 튜닝 (0) | 2024.07.19 |
---|---|
[1028 SQL]Ⅲ. SQL 고급 활용 및 튜닝-제5장 SQL 옵티마이저 (0) | 2024.07.19 |
[1028 SQL]Ⅲ. SQL 고급 활용 및 튜닝-제4장 조인 튜닝 (0) | 2024.07.15 |
[1028 SQL]Ⅲ. SQL 고급 활용 및 튜닝-제3장 인덱스 튜닝 (0) | 2024.07.05 |
[1028 SQL]Ⅲ. SQL 고급 활용 및 튜닝-제2장 SQL 분석 도구 (0) | 2024.07.04 |