BETWEEN으로 존재하지 않는 파티션 데이터 조회
2025. 2. 14. 17:57ㆍIT/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 |