1. 언두 세그먼트 사용 시 발생하는 부하 종류
- 버퍼 캐시에 사용 부하
- 언두 블록 변경 시 리두 로그 데이터 생성 부하
- 읽기 일관성 버퍼 캐시 생성 부하
--> 언두 블록도 버퍼 캐시를 사용하므로, 관련 부하를 발생시킨다.
--> 언두 블럭에 대한 변경도 리두 로그에 남는다.
===> 이런 부하를 줄이기 위해 IMU(In Memory Undo) 기능을 10g 부터 추가하였다.
2. IMU
언두 데이터를 메모리에서 생성한 후에 특정 시점에 언두 세그먼트로 이관하는 방식
2.1 특징
- shared pool에 존재하는 IMU 풀 영역을 사용하므로 버퍼 캐시 사용 부하가 없다.
- 변경시 리두 로그 정보를 생성하지 않기 때문에 관련 부하도 발생하지 않는다.
- 자동 언두 관리 방식을 사용해야 한다.
- _IN_MEMORY_UNDO 숨김 파라미터가 TRUE로 설정되어 있어야 한다. 기본값은 TRUE이다.
- RAC 에서는 사용할 수 없다.
IMU 풀이 차지하는 공간을 확인하는 SQL
select * from v$sgastat where name = 'KTI-UNDO';