IT기술/Oracle

08 세그먼트 (Segment) 에서의 대기 이벤트들

dobbby 2014. 2. 3. 10:25
반응형

1. enq: HW -contention

HW  락 경합은 대부분 대량 Insert 에 의해 발생하며, 간혹 대량 Update 에 의해 언두 세그먼트에서 HW 락 경합현상이 발생하는 경우도 있다.

In-memory Undo (IMU)


HWM

Bump Up 이 자주 발생하지 않게 하려면 Extent 값을 크게 주면 된다. (미리 쓸 자리를 할당한다.)


9i 때 Extent 사이즈를 고정해 두는 파라미터

tablespace 만들 때 uniform size 

extent management local uniform size 1M

10g 부터는 기본 64k 로 고정


FLM 을 사용하는 경우, HW 락의 경합을 줄이는 방법은 다음과 같다.

첫째, FREELISTS 값을 동시 트랜잭션의 수를 고려해서 충분히 크게 잡아준다.

둘째, _BUMP_HIGHWATER_MARK_COUNT 히든 파라미터의 값을 크게 설정한다.

_BUMP_HIGHWATER_MARK_COUNT 값은 하나의 프리리스트당 HWM 을 이동하는 크기를 결정한다.

셋째, 적절한 크기의 익스텐트를 사용한다.


ASSM 을 사용하는 경우에는 특별한 설정이나 관리기법이 없이도 HW 락 경합 문제가 자연스럽게 해결된다.

ASSM 은 부적절한 FREELISTS 값이나 스토리지 (STORAGE) 속성값에 의한 성능저하 현상을 미연에 방지할 수 있는 좋은 솔루션이다.




2. enq: ST - contention, enq:TT - contention

오라클 8i 에서 DMT (Dictionary Managed Tablespace) 를 사용할 경우 익스텐트 할당과 같은 공간관리 작업을 수행할 때,

오라클은 해당 작업을 동기화 하기 위해 ST 락을 사용한다.


LMT 를 사용하는 경우 UET$ (Used Extent), FET$ (Free Extent) 에 대한 스캔과 DML 이 전혀 이루어지지 않는다.

DMT 에서는 UET$, FET$ 등 익스텐트에 관련된 딕셔너리 테이블들에 익스텐트 정보를 관리하기 때문에 익스텐트의 변경이 있을 때마다

해당 테이블을 조회하고 변경하는 일련의 작업이 필요하다.


8i 부터는 ST 락 경합을 줄일 수 있는 세가지 방법을 제공한다.

첫째, LMT 기능을 추가했다.

둘째, TT 락의 사용을 확대했다.

셋째, 임시 테이블스페이스 (Temporary tablespace) 를 도입했다.




3. enq: US - contention

AUM 의 경우 RBU (Rollback Segment Management) 와는 달리 언두 세그먼트의 관리가 오라클에 의해 자동화된다.

AUM 을 사용하는 경우 언두 세그먼트가 온라인 또는 오프라인되는 시점은 다음과 같다.

1. 인스턴트 기동

2. alter system set undo_tablespace = xxxx 를 통해 언두 테이블 스페이스를 변경할 때 기존 언두 세그먼트들을 오프라인시키고, 새로운 언두 세그먼트들을 온라인시킨다.

3. 트랜잭션의 증가와 감소: 트랜잭션의 양이 빠른 속도로 증가해서 기존에 사용하던 언두 세그먼트만으로는 트랜잭션을 감당할 수 없을 때 새로운 오프라인 상태의 언두 세그먼트를 온라인시키거나 새로운 언두 세그먼트를 생성한다.




반응형