본문 바로가기

IT/Oracle

오라클 특정 파티션 내 데이터 조회

반응형

오라클에서 특정 파티션(partition) 내 데이터를 조회하려면 PARTITION 키워드를 사용하여 원하는 파티션만 지정할 수 있습니다. 이는 대량 데이터 처리 시 성능을 최적화하는 데 유용합니다.

기본 구문

SELECT *
FROM 테이블명 PARTITION (파티션명)
WHERE 조건;

 

예제 1 : 특정 파티션에서 데이터 조회
  • 테이블 SALES가 월별 데이터로 파티셔닝되어 있고, 파티션 이름이 SALES_JAN2024인 경우:

SELECT *
FROM SALES PARTITION (SALES_JAN2024)
WHERE REGION = 'North';

예제 2 : 파티션 키를 사용한 데이터 조회
  • 파티션 키가 SALE_DATE인 경우, 특정 파티션의 데이터를 조회하려면 파티션 키를 기준으로 조건을 지정합니다.

SELECT *
FROM SALES
WHERE SALE_DATE >= TO_DATE('2024-01-01', 'YYYY-MM-DD')
  AND SALE_DATE < TO_DATE('2024-02-01', 'YYYY-MM-DD');

예제 3 : 서브파티션 조회
  • 서브파티션이 구성된 테이블에서 특정 서브파티션 데이터를 조회하려면 다음과 같이 작성합니다

SELECT *
FROM 테이블명 SUBPARTITION (서브파티션명)
WHERE 조건;

예제 4: ALL_PART_TABLES와 ALL_TAB_PARTITIONS로 파티션 확인
  • 특정 테이블의 파티션 정보를 확인하려면 다음 쿼리를 사용합니다

-- 테이블의 모든 파티션 정보 조회
SELECT PARTITION_NAME, HIGH_VALUE, TABLE_NAME
FROM ALL_TAB_PARTITIONS
WHERE TABLE_NAME = 'SALES';

-- 테이블 및 서브파티션 정보 조회
SELECT TABLE_NAME, PARTITION_NAME, SUBPARTITION_NAME
FROM ALL_TAB_SUBPARTITIONS
WHERE TABLE_NAME = 'SALES';

예제 5 : 다이나믹 파티션 쿼리
  • 만약 파티션 이름이 동적으로 변하거나 자동 생성되었다면 DBMS_METADATA 또는 ALL_TAB_PARTITIONS를 이용해 파티션 이름을 동적으로 추출할 수 있습니다.

DECLARE
   v_partition_name VARCHAR2(100);
BEGIN
   SELECT PARTITION_NAME
   INTO v_partition_name
   FROM ALL_TAB_PARTITIONS
   WHERE TABLE_NAME = 'SALES'
     AND PARTITION_POSITION = 1; -- 첫 번째 파티션

   EXECUTE IMMEDIATE 'SELECT * FROM SALES PARTITION (' || v_partition_name || ')';
END;

관련 블로그

오라클 파티션 리빌드(Rebuild) 쿼리

Oracle에서 파티션 리빌드(Rebuild)는 인덱스 파티션 또는 하위 파티션을 재구성할 때 사용됩니다. 데이터의 재정렬, 공간 최적화, 파티션 데이터 변경 후 성능을 개선하기 위해 리빌드가 필요할 수

make2t.tistory.com

 

반응형

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

오라클 파티션 인덱스 상태 조회 쿼리  (0) 2025.02.23
오라클 통계정보 갱신  (2) 2025.02.23
Oracle 19c의 기능  (1) 2025.02.23
오라클 파티션 리빌드(Rebuild) 쿼리  (0) 2025.02.23
오라클 enq: RO - fast object reuse 락  (0) 2025.02.23