티스토리 뷰
* 비교
분류 |
latch |
lock |
목적 |
하나의 목적을 수행 메모리 구조에 대한 배타적인 접근을 위함 |
두가지 목적을 수행 락모드가 호환 가능하면 다수의 프로세스가 동일한 리소스를 공유하는 것을 허용하며 락모드가 호환가능하지 않으면 리소스에 대한 배타적인 접근만 허용 |
사용범위 |
SGA 내부의 데이터 구조에만 적용 |
테이블, 데이터 블록및 state object 와 같은 object 를 보호한다 |
획득방식 |
willing- to - wait / no - wait |
null, row shre, row exclusive, share, share row exclusive, exclusive |
범위 |
SGA 내부에 정보가 존재 |
데이터베이스 내부에 정보가 존재 |
복잡도 |
단순한 명령어를 사용하여 구현 |
문맥교환을 포함한 일련의 명령어들을 사용하여 구현 |
지속시간 |
짧은시간만 지속(ms 단위) |
tx 가 지속되는 동안 |
queue |
프로세스가 래치획득실패후 슬립상태로 들어갈때 해당요청은 큐로 관리되지않으며 요청한 순서대로 서비스되지않는다 |
프로세스가 락 획득을 실패한후 해당요청은 큐로 관리 , 요청한 순서대로 서비스된다( no-wait) 모드는 예외 |
deadlock |
데드록이 발생되지않도록 구현됨 |
queue 방식사용 데드락의 가능성이 높다 trace 파일생성 |
* latch
- 경량화된 락(이지만 다른객체로 분류)
- shared pool 영역에 존재하는 일종의 메모리 구조( 매우간단하고 작은 메모리영역)
- SGA 리소스를 보호한다.
- 부모래치, 자식래치, 독립래치로 분류한다.
- 래치동작의 매커니즘 : 래치레벨 , 래치모드, 래치획득(willing-to-wait, no-wait), 래치클린업
- 래치의 대기이벤트
- latch : cache buffers chains
- latch : cache buffers Iru chain
- latch : shared pool
- latch : library cache
- latch : redo copy
* lock
- 락동작 매커니즘 : 락모드, 락획득
- 락 관련 대기이벤트
- row cache lock
- buffer busy waits, read by other session
- library cache lock
- library cache pin
- DFS lock handle
'DB, Storage > oracle' 카테고리의 다른 글
SQL 수행시 작업 (0) | 2013.12.01 |
---|---|
대기이벤트 (0) | 2013.11.29 |
undo 와 redo 의 차이 (0) | 2013.11.25 |
system and sysaux tablespaces (0) | 2013.11.20 |
OWI 개요 (0) | 2013.11.15 |