본문 바로가기

TUNING

Latch와 Lock


오라클에서는 동시에 수많은 프로세스가 동일 리소스를 사용할 수 있음

그.래.서. 리소스의 일관성을 보호하기 위해 Latch와 Lock 두가지 동기화 메커니즘이 사용됨.


★ Latch 래치와 Lock 락의 차이점 꼭 알아두기!!!



 

 LATCH 래치

 LOCK 락 

 목적

 메모리(SGA)를 동시에 쓸 때 Latch가 보호

 공유 리소스와 사용자 데이터를 보호

 사용범위

 SGA 내부 데이터 구조에만 적용

 메모리(SGA)+데이터베이스를 보호

 획득방식

 willing-to-wait, no-wait

 null, row share, row exclusive, share,
 share row exclusive, exclusive

 범위

 shared pool에 정보가 존재,
 자기 인스턴스(node)에서만 볼 수 있음 

 --> 인스턴스 레벨로 작동

 데이터베이스에 정보가 존재,

 모든 인스턴스(node)에 적용 (GCS같은것)

 --> 데이터베이스 레벨로 작동

 복잡도

 구현이 쉬움

 구현이 어려움

 지속기간

 아주 짧은 시간만 지속, max=2sec

 commit 하기 전까지는 계속 지속됨 

 (트랜잭션동안 지속) 

 큐 (Queue)

 순서와 상관 없이 latch를 획득, 순서 보장 안함

 queue로 관리되기 때문에 순서대로 lock을 획득

 데드락

 deadlock이 발생되지 않도록 구현

 deadlock이 발생될 가능성이 높음


'TUNING' 카테고리의 다른 글

OWI - Oracle Wait Interface  (0) 2013.03.26
INSTANCE 튜닝 - Data Buffer Cache  (0) 2013.03.19
Optimizer  (0) 2013.03.14
SQL AutoTrace & SQL Trace  (0) 2013.03.12
SQL 처리 구조  (0) 2013.03.11