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';