문서의 선택한 두 판 사이의 차이를 보여줍니다.
| 양쪽 이전 판이전 판다음 판 | 이전 판 | ||
| study:oracle:adv_owi_10g:buffer_cache_wait_event [2009/08/11 15:38] – deathguy | study:oracle:adv_owi_10g:buffer_cache_wait_event [2025/10/03 22:30] (현재) – 바깥 편집 127.0.0.1 | ||
|---|---|---|---|
| 줄 1: | 줄 1: | ||
| ====== Buffer Cache에서의 대기이벤트들 ====== | ====== Buffer Cache에서의 대기이벤트들 ====== | ||
| - | |||
| ===== latch: cache buffers chains ===== | ===== latch: cache buffers chains ===== | ||
| - | latch: cache buffers lru chains | + | 버퍼 캐시(Buffer cache) 에서 특정 Block을 탐색하고자 하는 프로세스는 cache buffer chains 래치를 획득하여야 하는데 이 과정에서 경합이 |
| + | 발생될때 발생되는 래치 | ||
| + | 참고로 9i 이후부터는 읽기 전용으로 체인을 탐색할 경우 cache buffers chains 래치를 Shared 모드로 공유 할수 있다 | ||
| + | 발생되는 대표적인 이유 | ||
| + | * 비효율적인 SQL | ||
| + | * 핫블록(Hot Block) | ||
| + | ===== latch: cache buffers lru chains | ||
| + | Working Set (LRU + LRUW) 을 탐색하거나 변경하려는 프로세스는 항상 해당 Working Set을 관리하는 cache buffers lru chain 래치를 획득해야함 | ||
| + | 이때 획득하는 과정에서 경합이 발생될 경우 latch: cache buffers lru chain 이벤트에 대기 | ||
| - | buffer busy waits | + | ===== buffer busy waits ===== |
| - | read by other session | + | * 10g 이전 |
| - | buffer busy global cache | + | |
| - | write complete | + | * 10g |
| - | buffer lock | + | |
| - | free buffer waits | + | |
| - | db file sequential | + | ===== read by other session ===== |
| - | db file scattered read | + | ===== buffer busy global cache ===== |
| + | ===== write complete waits ===== | ||
| + | ===== buffer lock ===== | ||
| + | 오라클은 Row level lock을 제공한다. 하지만 하나의 블록엔 여러개의 row 들이 존재하는데 row level lock을 제공하기 위해서는 반드시 row가 들 포함되어있는 블록에 대해서 lock을 걸어 자신만이 블록을 변경하고 있다는 것을 보장받아야 한다. 이경우에 획득해야 하는 락을 buffer lock라 한다 | ||
| + | buffer lock 역시 다른 lock과 마찬가지로 획득하지 못할경우 대기해야 한다 | ||
| + | buffer lock mode | ||
| + | * Shared mode : 버퍼를 읽는 과정일때 획득 | ||
| + | * Exclusive mode : 버퍼를 변경하는 과정일때 획득 | ||
| + | ===== free buffer waits ===== | ||
| + | ===== db file sequential read ===== | ||
| + | ===== db file scattered read ===== | ||
| - | enq: HW - contention | ||
| - | enq: TC - contention | ||
| - | enq: CI - contention | ||
| - | enq: RO - contention | ||
| - | hot block | ||
| + | ===== enq: HW - contention ===== | ||
| + | ===== enq: TC - contention ===== | ||
| + | ===== enq: CI - contention ===== | ||
| + | ===== enq: RO - contention ===== | ||
| + | ===== hot block ===== | ||