문서의 선택한 두 판 사이의 차이를 보여줍니다.
양쪽 이전 판 이전 판 다음 판 | 이전 판 | ||
study:oracle:adv_owi_10g:buffer_cache_wait_event [2009/08/11 16:01] deathguy |
study:oracle:adv_owi_10g:buffer_cache_wait_event [2009/08/11 16:13] (현재) deathguy |
||
---|---|---|---|
줄 7: | 줄 7: | ||
* 비효율적인 SQL | * 비효율적인 SQL | ||
* 핫블록(Hot Block) | * 핫블록(Hot Block) | ||
- | |||
===== latch: cache buffers lru chains ===== | ===== 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 ===== | ||
줄 20: | 줄 21: | ||
===== write complete waits ===== | ===== write complete waits ===== | ||
===== buffer lock ===== | ===== 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 ===== | ===== free buffer waits ===== | ||
===== db file sequential read ===== | ===== db file sequential read ===== |