Post

오라클 12c ~ 19c New Feature 세미나

오라클 12c~19c 구간에서 실무에 바로 적용 가능한 SQL/성능/운영 기능을 중심으로 정리한 세미나 노트입니다.

오라클 12c ~ 19c New Feature 세미나

오라클 12c부터 19c까지의 기능 변화 중에서, 실제 개발과 운영에 영향이 큰 항목을 중심으로 정리했다.
핵심 키워드는 크게 세 가지다.

  • SQL 작성/조회 편의성 개선
  • 대용량 처리 및 성능 최적화 기능 강화
  • JSON/임시 테이블/모니터링 등 실무 운영 기능 확장

SQL 작성 편의성 개선

1) 페이징 구문 단순화

기존에는 rownum 기반 인라인 뷰 패턴을 자주 사용했지만, 이제는 아래처럼 더 직관적인 문법을 사용할 수 있다.

  • offset ... rows fetch next ... rows only

쿼리 가독성과 유지보수성이 좋아지고, 페이징 쿼리 작성 시 실수를 줄이기 쉽다.

2) 근사 집계 함수 지원

정확한 집계보다 “빠른 대략치”가 중요한 분석성 쿼리에서는 근사 함수가 유용하다.

  • approx_count_distinct
  • APPROX 계열 집계 함수(버전에 따라 count/sum/rank 등)

특히 데이터 볼륨이 매우 큰 환경에서는 응답 속도와 자원 사용량 측면에서 체감 차이가 크다.

3) 문자열/집계 편의 기능

  • listagg overflow 대응
  • any_value() 기반 group by 부하 완화

집계 과정에서 발생하던 예외(길이 초과 등)와 불필요한 연산 부담을 줄일 수 있다.

데이터 타입/변환/저장 확장

1) 컬럼 길이 확장

12c부터 varchar2/nvarchar2 길이를 최대 32K까지 사용할 수 있다.
다만 큰 데이터는 저장 구조와 접근 방식에 따라 성능 영향이 있을 수 있으므로, 스키마 설계 시 주의가 필요하다.

2) 형변환 예외 제어

형변환 오류를 쿼리 레벨에서 제어할 수 있는 기능이 추가되었다.

  • ON CONVERSION ERROR
  • VALIDATE_CONVERSION

운영 중 데이터 품질이 균일하지 않은 테이블을 다룰 때 안정성이 올라간다.

JSON 및 멀티 데이터 처리 강화

19c 구간에서는 JSON 관련 기능이 특히 강화되었다.

  • JSON 병합/수정 함수(json_mergepatch 등)
  • JSON 인덱스(Functional Index 기반)
  • 배열 검색 최적화

요약하면, 오라클 내부에서 JSON을 다루는 선택지가 크게 늘어났다.
다만 JSON은 일반 정규화 컬럼 조회보다 비용이 높을 수 있어, 접근 패턴에 맞는 인덱스 설계가 필요하다.

성능/운영 관점 주요 기능

1) Real-time Materialized View

베이스 테이블과 즉시 완전 동기화되지 않아도 조회 시점 보정이 가능한 시나리오를 지원한다.
리포팅/조회 업무에서 refresh 주기에 대한 운영 부담을 줄일 수 있다.

2) Private Temporary Table (18c)

세션/트랜잭션 범위 임시 테이블을 더 유연하게 다룰 수 있다.
단기 데이터 가공 작업에서 격리성과 안전성이 좋아진다.

3) Memoptimized Rowstore

  • fast lookup: 단건 조회 최적화
  • fast ingest: 고빈도 insert 처리 최적화

읽기/쓰기 각각의 워크로드 특성에 맞춰 메모리 활용 전략을 분리할 수 있다는 점이 실무적으로 의미 있다.

4) Scalable Sequence (18c)

시퀀스 사용 시 hot block 이슈를 줄이기 위한 기능이 추가되었다.
고동시성 insert 환경에서 특히 유용하다.

개발/튜닝 가시성 개선

SQL 모니터링 관련 뷰가 확대되어, 실행계획뿐 아니라 “실행 중 어디서 병목이 생기는지”를 더 직접적으로 확인할 수 있다.

  • V$ALL_SQL_MONITOR
  • V$ALL_SQL_PLAN_MONITOR
  • V$ALL_SQL_PLAN
  • V$ALL_ACTIVE_SESSION_HISTORY

운영자뿐 아니라 개발자 관점에서도 튜닝 피드백 루프를 짧게 가져갈 수 있다.

적용 시 체크 포인트

  • 근사 함수는 정확도 요구사항과 함께 도입한다.
  • JSON 기능은 편의성보다 접근 패턴과 인덱스 비용을 먼저 검토한다.
  • 메모리 최적화 기능은 데이터 정합성 요구 수준과 함께 평가한다.
  • 버전별 지원 범위(12c/18c/19c)를 사전에 명확히 구분한다.

결론적으로 12c~19c 구간의 변화는 단순 기능 추가를 넘어, “SQL 생산성 + 대용량 성능 + 운영 가시성”을 함께 끌어올리는 방향으로 정리할 수 있다.

This post is licensed under CC BY 4.0 by the author.