Oracle Database/Training

4장. In-Memory

수상한 김토끼 2025. 3. 10. 14:43

 

1. 오라클 인메모리 개요:

  • 오라클 인메모리는 데이터베이스 성능 향상을 위한 기술로, 데이터를 SGA의 인메모리 영역에 로드한 후 처리하여 빠른 데이터 접근 및 분석 가능
  • 주로 분석 쿼리(OLAP) 성능 향상에 초점을 맞추고 있으며, OLTP 환경에서도 성능 향상을 기대할 수 있음
    • 활용분야:
      • 실시간 대시보드 및 보고서: 인메모리에 실시간 데이터를 로드하고, 이를 기반으로 대시보드 및 보고서를 생성하여 경영진 또는 담당자가 실시간으로 데이터를 분석하고 의사 결정을 내릴 수 있도록 지원
      • 캐싱: 인메모리를 캐시로 활용하여 자주 사용되는 데이터를 메모리에 저장하여, 데이터 접근 속도 향상
  • 오라클 12.1.0.2 버전에 최초 도입

2. 로우 포맷과 컬럼 포맷:

  • 오라클 인메모리는 데이터를 로우 포맷과 컬럼 포맷 두 가지 형태로 메모리에 저장
    • 로우 포맷: 일반적인 데이터베이스 저장 방식으로, 트랜잭션 처리(OLTP)에 유리
      • 개념: 데이터를 행(row) 단위로 저장하며, 각 레코드의 모든 필드(열) 값을 하나의 연속된 블록에 저장
      • 특징: 트랜잭션 처리(OLTP)에 유리하며, 레코드 단위의 삽입, 수정, 삭제 작업에 효율적
    • 컬럼 포맷: 분석 쿼리(OLAP)에 특화된 저장 방식으로, 특정 열의 데이터만 빠르게 처리 가능
      • 개념: 데이터를 열(column) 단위로 저장하며, 같은 열에 해당하는 모든 레코드의 값을 하나의 연속된 블록에 저장
      • 특징: 분석 쿼리(OLAP)에 특화된 저장 방식으로, 특정 열의 데이터만 빠르게 처리 가능
    • 온라인 쇼핑몰에서 고객이 상품을 주문하면 로우 포맷으로 주문 정보를 저장하고, 컬럼 포맷으로 매출 분석에 필요한 데이터 업데이트 수행,  이렇게 하면 주문 처리 속도를 높이면서도 실시간으로 매출 분석 수행 가능
  • 인메모리 기능은 두 포맷을 동시에 사용하여 OLTP와 OLAP 작업을 모두 효율적으로 처리

3. 인메모리 기능의 특징:

  • 컬럼 스토어: 데이터를 컬럼 단위로 저장하여 분석 쿼리 성능 향상
  • 데이터 압축: 메모리 사용량을 줄이기 위해 데이터를 압축하여 저장
  • 스토리지 인덱스: 불필요한 데이터 로드를 줄여 메모리 사용량을 최적화
    • 스토리지 인덱스는 Oracle Exadata에서 사용되던 기술로, 데이터베이스가 디스크에서 데이터를 읽어올 때 불필요한 데이터 블록을 필터링하는 데 사용하여 메모리에 로드해야 할 데이터 블록을 미리 식별하여 I/O 오버헤드를 줄이는 역할 수행
    • 일반 데이터베이스에서도 WHERE 조건을 통해 데이터 범위를 지정할 때 인덱스를 사용하면 스토리지 인덱스와 유사한 효과를 기대할 수 있음
  • SIMD (Single Instruction, Multiple Data) 벡터 프로세싱: CPU 수준에서 병렬 처리를 통해 데이터 처리 속도 향상
    • 여러 개의 데이터 요소를 SIMD 벡터 레지스터에 로드하고, 하나의 명령어로 벡터 레지스터의 모든 요소를 동시에 처리
  • AIM (Automatic In-Memory): 데이터베이스가 작업 부하와 데이터 접근 패턴을 분석하여 자주 사용되는 데이터를 자동으로 In-Memory 영역에 로드하고, 사용 빈도가 낮은 데이터는 자동으로 제거하는 기능

4. 19c DB 무료 인메모리 기능:

  • 오라클 19.8 버전부터 In-Memory 옵션 기능을 최대 16GB까지 무료로 사용 가능
    • Windows 와 HP-UX의 경우 19.9 버전부터 사용가능
    • alter system set inmemory_force=base_level scope=spfile;
    • alter system set inmemory_size=16G scope=spfile;
  • RAC 환경 지원 (노드당 16GB), Init Parameter 설정, 낮은 수준의 쿼리 압축 기능 압축 기능 등을 제공
  • AIM 기능, 특정 컬럼 선택, Exadata 환경에서의 CELLMEMORY 사용은 유료 버전에서만 가능

5. CELLMEMORY:

  • Oracle Exadata 시스템에서 사용되는 플래시 메모리 기반 캐시 기술로, 데이터베이스 성능을 향상시키는 역할 수행
    • 플래시 메모리:  Exadata 스토리지 서버에는 플래시 메모리가 탑재되어 있으며, CELLMEMORY는 이 Exadata 스토리지 서버에 탑재된 플래시 메모리를 데이터베이스 캐시로 활용
    • Smart Scan (스마트 스캔): Exadata 스토리지 서버에서 스마트 스캔이라는 기술을 통해 데이터 필터링 및 처리를 수행하고, CELLMEMORY는 스마트 스캔 과정에서 필터링된 데이터를 플래시 메모리에 저장하여 후속 쿼리 성능 향상
    • Memory Tiering (메모리 계층화): CELLMEMORY는 DRAM 캐시와 플래시 메모리 캐시를 계층화하여 데이터를 관리하며, 자주 사용되는 데이터는 DRAM 캐시에 저장하고, 덜 자주 사용되는 데이터는 플래시 메모리에 저장하여 메모리 효율성을 높임

'Oracle Database > Training' 카테고리의 다른 글

5장. ACO (Advanced Compression Option)  (0) 2025.03.10
3장. Backup and Recovery  (0) 2025.03.06
2장. High Availability  (0) 2025.03.06
1장. Administration  (0) 2025.03.05