BETWEEN으로 존재하지 않는 파티션 데이터 조회

2025. 2. 14. 17:57IT/Oracle

반응형

BETWEEN으로 존재하지 않는 파티션까지 포함하여 조회할 경우 성능 저하가 발생할 수 있습니다. 이유는 다음과 같습니다:

1. 존재하지 않는 파티션 탐색 시도

  • DB 엔진은 BETWEEN 범위에 포함된 모든 파티션을 탐색하려 시도합니다.
  • 존재하지 않는 파티션까지 탐색하려고 하면, 불필요한 메타데이터 검사가 늘어나 쿼리 실행 시간이 증가할 수 있습니다.

 
2. 파티션 프루닝(Partition Pruning) 미적용 가능성

  • 파티션 프루닝은 필요한 파티션만 읽어오는 최적화 기법인데, 존재하지 않는 파티션이 포함되면 프루닝이 제대로 적용되지 않을 수 있습니다.
  • 결과적으로 모든 파티션을 스캔할 가능성도 있습니다.

3. 성능 최적화 방안

  • 파티션 존재 여부를 체크하여 실제 존재하는 파티션만 대상으로 쿼리를 수행하면 성능이 훨씬 좋아집니다.
  • WHERE 절에서 파티션 키를 정확히 명시하는 것도 중요합니다.
  • UNION ALL로 존재하는 파티션별로 나누어 조회하거나, 동적 SQL을 활용하여 파티션 목록을 먼저 조회하고 쿼리를 실행할 수도 있습니다.


존재하지 않는 파티션까지 포함된 BETWEEN 조회는 성능 저하를 유발할 수 있으므로, 파티션이 존재하는 기간만 대상으로 쿼리하는 것이 바람직합니다.

반응형

'IT > Oracle' 카테고리의 다른 글

Bulk Insert  (0) 2025.02.15
Common Table Expression (CTE)(ㅇ)  (1) 2025.02.14
Job Number 조회(ㅇ)  (1) 2025.02.14
언두 테이블스페이스 크기 관리  (2) 2025.02.13
INSERT SELECT 성능 개선 기본 전략(ㅇ)  (1) 2025.02.13