DBA가 되고 싶은 병아리

Buffer lock에 관련 되어서 본문

Oracle Study

Buffer lock에 관련 되어서

미스틱스 2012. 2. 3. 09:07

특정 블록(Block)을 액세스하는 프로세스는 해당 블록에 대해 Buffer Lock을 획득해야 한다. 가령 특정 블록을 변경하려면 해당 블록에 대해 Buffer Lock을 Exclusive 모드로 획득해야 한다. 반면 특정 블록을 읽으려면 해당 블록에 대해 Buffer Lock을 Shared 모드로 획득해야 한다.


만일 프로세스 A가 블록 X에 대해 Buffer Lock을 획득하고 있는 상태에서 프로세스 B가 동일 블록에 대해 호환되지 않는 모드로 Buffer Lock을 획득하지 못하고 대기해야 한다. 이때 발생하는 대기 이벤트가 buffer busy waits 이벤트이다.


buffer busy waits 이벤트가 가장 흔히 목격되는 경우는 동시에 여러 프로세스가 동일 블록에 대해 Insert를 하거나 Update를 하는 경우이다. Insert나 Update 작업은 해당 블록에 대해 Buffer Lock을 Exclusive 모드로 획득할 것을 요구한다. 여러 프로세스가 동시에 동일 블록에 대해 Buffer Lock을 Exclusive 모드로 획득하는 경우에는 Buffer Lock 경합이 발생하게 되고 buffer busy waits 이벤트에 대한 대기로 관찰된다.

 

 

출처 : 엑셈 지식창고

'Oracle Study' 카테고리의 다른 글

oracle asm 설치 패키지  (0) 2015.12.31
오라클 NLS_LANG 설정변경  (0) 2012.02.03
RAC 수동 구성  (0) 2012.02.03
OCFS2 란 무엇인가??  (0) 2012.02.03
여유공간과 기본 확보 공간  (0) 2011.12.20