데이터 아키텍처 & 처리기술 & DBMS/Oracle

테이블 레벨 Lock 읽기 일관성 확보

anodos 2023. 12. 21. 16:21

테이블 레벨의 Lock은 여러 트랜잭션이 동시에 동일한 테이블에 접근하는 것을 제어하고 읽기 일관성을 확보하는 데 사용될 수 있습니다

 

테이블 레벨 Lock은 특정 트랜잭션이 해당 테이블에 대한 독점적인 접근 권한을 가지게 하여 다른 트랜잭션이 동시에 해당 테이블을 수정하는 것을 방지합니다.

일반적으로 테이블 레벨 Lock을 사용하는 상황은 다음과 같습니다:

1. **읽기 일관성을 확보:** 여러 트랜잭션이 동시에 동일한 테이블을 읽을 때, 테이블 레벨 Lock을 사용하여 동시에 여러 트랜잭션이 해당 테이블을 수정하는 것을 막습니다. 이로써 데이터의 일관성을 유지할 수 있습니다.

2. **읽기 작업 동안 갱신 방지:** 

테이블 레벨 Lock을 사용하면 특정 트랜잭션이 해당 테이블을 읽는 동안 다른 트랜잭션이 해당 테이블의 내용을 갱신할 수 없게 됩니다. 이것은 읽기 작업 동안에 갱신 작업을 방지하여 읽기 일관성을 유지하는 데 도움이 됩니다.

3. **특정 테이블에 대한 동시 접근 제어:** 

여러 트랜잭션이 특정 테이블에 동시에 접근할 때, 테이블 레벨 Lock을 사용하여 동시 접근을 제어하고 읽기 작업 간의 충돌을 방지할 수 있습니다.

그러나 테이블 레벨 Lock은 동시성을 저해할 수 있으므로 사용에 주의해야 합니다. 

특히, 동시에 여러 트랜잭션이 동일한 테이블에 접근해야 하는 환경에서는 다른 Locking 수준(예: 행 레벨 Lock)을 고려하는 것이 더 효율적일 수 있습니다.

Oracle 데이터베이스에서는 여러 종류의 Locking 메커니즘을 제공하며, 어떤 Locking 수준을 사용할지는 사용자가 상황에 맞게 결정해야 합니다.

반응형

'데이터 아키텍처 & 처리기술 & DBMS > Oracle' 카테고리의 다른 글

oracle undo segment에서 cr copy  (0) 2023.12.21
Read Committed  (0) 2023.12.21
문장수준 읽기 일관성  (0) 2023.12.21
Oracle Undo 세그먼트 구조  (0) 2023.12.21
Block-Level Lock  (0) 2023.12.21