[Oracle] 오라클 파티션 테이블 사용법 (생성, 조회, 수정, 삭제)

     

    파티션 테이블이란?

    파티션이란 테이블에 있는 특정 컬럼값을 기준으로 데이터를 분할해 저장해놓은 테이블입니다. 이때 논리적인 테이블은 1개이지만 물리적으로는 분할한 만큼 파티션이 만들어져 입력되는 컬럼 값에 따라 분할된 파티션별로 데이터가 저장됩니다. 파티션 테이블을 만드는 목적은 대용량 테이블의 경우 데이터 조회 시 효율성과 성능을 높이기 위한 것입니다.

     

    파티션 테이블 만들기 예제

    create table SALES (
      sales_no       number,
      sale_year      number,
      sale_month     number,
      sale_day       number,
      customer_name  varchar2(30),
      birth_date     date,
      price          number,
      state          varchar2(2)
    )
    partition by hash (birth_date)
    subpartition by hash (sales_no) subpartition template
    (
      subpartition S1, 
      subpartition S2,
      subpartition S3,
      subpartition S4
    )
    (
      partition SALES_P1, 
      partition SALES_P2,
      partition SALES_P3,
      partition SALES_P4
    );

    위 스크립트에서는 birth_date 컬럼을 파티션키로 하는 Hash 파티션을 메인 파티션으로 만들고, 그 파티션들을 다시 sales_no 컬럼을 서브파티션키로 하는 Hash 서브파티션으로 만들어 복합파티션을 구성하였습니다. 서브파티션을 만들지 않고 그냥 파티션만 만들고싶다면 subpartition 부분만 빼주시면 됩니다.

     

    파티션 테이블 조회

    --문법
    SELECT  * FROM [테이블명] PARTITION ([파티션명])
    --예제
    SELECT * FROM SALES PARTITION (SALES_P1);

    파티션 테이블을 만들었으면 위와같이 써먹어야 만든 보람이 있겠죠.?? 조회는 위와같이 하시면 됩니다.

     

    파티션 테이블 데이터 변경

    --파티션 테이블 UPDATE
    UPDATE 테이블명 PARTITION (파티션명)
    SET
    컬럼1 = 변경값
    컬럼2 = 변경값
    ....
    WHERE
    조건문;

     

    파티션 테이블 데이터 삭제

    --파티션 DELETE문
    DELETE FROM 테이블명 PARTITION (파티션명)
    WHERE
    조건;

     

    기타 파티션 관련 조회 쿼리

    --전체 테이블 파티션 조회
    SELECT * FROM ALL_TAB_PARTITIONS
     
    --접속계정 테이블 파티션 조회
    SELECT * FROM USER_TAB_PARTITIONS
     
     --파티션 테이블 키 컬럼 조회
    SELECT * FROM ALL_PART_KEY_COLUMNS WHERE NAME = 'SALES'; 
     
    --파티션명 조회
    SELECT * FROM ALL_TAB_PARTITIONS WHERE TABLE_NAME = 'SALES'

     

     

    댓글

    Designed by JB FACTORY