study:oracle:adv_owi_10g:latch_and_lock
문서의 이전 판입니다!
Latch and Lock
오라클은 latch 와 lock 이라는 Synchronization(동기화) 매커니즘을 이용하여 리소스를 보호한다.
latch 와 lock 를 둘 다 동시작업으로부터 자원을 보호하는 것이다.
OWI를 이용하면 latch와 lock에 의한 경합현상을 직관적으로 파악할 수 있다.
latch와 lock의 차이점
분류 | 래치(latch) | 락(lock) |
목적 | | |
사용범위 | | |
획득방식 | | |
범위 | | |
복잡도 | | |
지속기간 | | |
큐(Queue) | | |
DeadLock | | |
Latch
Latch 정의
가벼운 락(Lock)
오라클 메뉴얼에서 분류하는 방법
아주 빠른 속도로 작동하게끔 구현된 경량화된 락
일반적으로는 Latch와 Lock 을 전혀 다른 객체로 분류
물리적으로 Shared Pool 영역에 존재하는 일종의 메모리 구조체
매우 간단하고 작은 메모리영역 사용
Latch가 보호하는 Resource
Latch가 보호하는 Resource : SGA
Shared Pool 래치
새로운 SQL문을 실행하고자하는 프로세스는 해당 SQL을 Shared Pool의 library cache 영역에 올린다.
이 때 필요한 Heap Memory 영역을 할당받기 위해 획득하는 래치이다.
Shared Pool 래치는 보통 전체 인스턴스에 하나만 존재하므로
한번에 하나의 프로세스만이 Heap으로부터 Chunk를 할당 받을 수 있다.
Cache Buffers Chains 래치
Select 문을 통해서 특정 datablock을 읽기 위해서
datablock의 DBA(Data Block Address)와 Class에 해당하는 Hash Chain에 접근하고자 하는 모든 프로세스는
반드시 해당 해시 체인을 관장하는 cache buffers chains 래치를 획득한다.
Latch 동작 매커니즘
Latch 관련 Dynamic Views
일반적인 Latch 관련 대기이벤트들
Lock
Lock의 분류
Lock이 보호하는 Resource
Lock 동작 매커니즘
Lock 관련 Dynamic Views
일반적인 Lock 관련 대기이벤트들
study/oracle/adv_owi_10g/latch_and_lock.1248823739.txt.gz · 마지막으로 수정됨: 2009/07/29 08:28 저자 starlits