export LANG=C

export LC_ALL=C

 

실행후 ./runinstaller

https://hellodaepang.tistory.com/1

'Server > Linux' 카테고리의 다른 글

Oracle 설치시 한글깨짐  (0) 2020.02.15
한번에 끝내는 CentOS 웹서버세팅 (센토스 서버세팅)  (0) 2019.08.02
CentOs7 Spring war 배포하기(deploy)  (0) 2018.08.10
명령어  (0) 2018.08.10
ssl 구축하기  (0) 2018.08.09

 

 

오라클 파티션 테이블 샘플(생성 수정 삭제) 및 주의사항

IT/Oracle 2017.07.25 17:31

 

오라클 파티션 테이블 샘플(생성 수정 삭제) 및 주의사항

 

 

 

대용량 데이터를 조회 시 조금이라도 더 빠른 데이터의 접근을 위해서는 

테이블을 파티션으로 분할하여 테이블을 생성할 수가 있습니다.

 

 

 

 

파티션 테이블 생성

 

CREATE TABLE TB_SALE ( SALE_DATE VARCHAR2(8 BYTE) NOT NULL , SALE_TIME VARCHAR2(6 BYTE) NOT NULL , CUST_NO VARCHAR2(10 BYTE) NOT NULL , SALE_AMT NUMBER , INPUT_DATE DATE ) TABLESPACE TS_DATA PARTITION BY RANGE (SALE_DATE) ( PARTITION PR_TB_SALE_201801 VALUES LESS THAN ('20180201') , PARTITION PR_TB_SALE_201802 VALUES LESS THAN ('20180301') , PARTITION PR_TB_SALE_201803 VALUES LESS THAN ('20180401') , PARTITION PR_TB_SALE_201804 VALUES LESS THAN ('20180501') , PARTITION PR_TB_SALE_201805 VALUES LESS THAN ('20180601') , PARTITION PR_TB_SALE_201806 VALUES LESS THAN ('20180701') , PARTITION PR_TB_SALE_201807 VALUES LESS THAN ('20180801') , PARTITION PR_TB_SALE_201808 VALUES LESS THAN ('20180901') , PARTITION PR_TB_SALE_201809 VALUES LESS THAN ('20181001') , PARTITION PR_TB_SALE_201810 VALUES LESS THAN ('20181101') , PARTITION PR_TB_SALE_201811 VALUES LESS THAN ('20181201') , PARTITION PR_TB_SALE_201812 VALUES LESS THAN ('20190101') , PARTITION PR_TB_SALE_201901 VALUES LESS THAN ('20190201') , PARTITION PR_TB_SALE_201902 VALUES LESS THAN ('20190301') , PARTITION PR_TB_SALE_201903 VALUES LESS THAN ('20190401') , PARTITION PR_TB_SALE_201904 VALUES LESS THAN ('20190501') , PARTITION PR_TB_SALE_201905 VALUES LESS THAN ('20190601') , PARTITION PR_TB_SALE_201906 VALUES LESS THAN ('20190701') , PARTITION PR_TB_SALE_201907 VALUES LESS THAN ('20190801') , PARTITION PR_TB_SALE_201908 VALUES LESS THAN ('20190901') , PARTITION PR_TB_SALE_201909 VALUES LESS THAN ('20191001') , PARTITION PR_TB_SALE_201910 VALUES LESS THAN ('20191101') , PARTITION PR_TB_SALE_201911 VALUES LESS THAN ('20191201') , PARTITION PR_TB_SALE_201912 VALUES LESS THAN ('20200101') -- PARTITION PR_TB_SALE_MAX VALUES LESS THAN (MAXVALUE) ) ; CREATE UNIQUE INDEX PK_TB_SALE ON TB_SALE (SALE_DATE, SALE_TIME, CUST_NO) TABLESPACE TS_INDEX LOCAL ; ALTER TABLE TB_SALE ADD CONSTRAINT PK_TB_SALE PRIMARY KEY (SALE_DATE, SALE_TIME, CUST_NO); COMMENT ON COLUMN TB_SALE.SALE_DATE IS '매출일자'; COMMENT ON COLUMN TB_SALE.SALE_TIME IS '매출시간'; COMMENT ON COLUMN TB_SALE.CUST_NO IS '고객번호'; COMMENT ON COLUMN TB_SALE.SALE_AMT IS '매출 금액'; COMMENT ON TABLE TB_SALE IS '고객 매출내역';

 

 

 

 

파티션 구성 시 마지막에 MAXVALUE 를 주석으로 막은 이유는 

분할해 둔 파티션의 마지막이 임박해오는 경우 SPLIT 보다 파티션 추가가 간편하기 때문입니다!

물론 예기치 않은 데이터가 들어오는 경우 MAXVALUE 를 지정해두는것이 안정적이긴 합니다.

 

 

파티션 추가

ALTER TABLE TB_SALE ADD PARTITION PR_TB_SALE_202001 VALUES LESS THAN ('20200201' ) TABLESPACE TS_INDEX ;

 

 

 

 

파티션 삭제

 

ALTER TABLE TB_SALE DROP PARTITION PR_TB_SALE_202001 ;

 

 

 

 

 

 

 

파티션 분할 (MAXVALUE 파티션 분할)

 

ALTER TABLE TB_SALE SPLIT PARTITION PR_TB_SALE_MAX AT ( '20200201' ) INTO ( PARTITION PR_TB_SALE_202001 , PARTITION PR_TB_SALE_MAX ) ;

 

 

MAXVALUE 로 잡혀있던 PR_TB_SALE_MAX 파티션을 2020년 02월 01일 이전 데이터가 입력될 파티션으로 분리하였다.

 

 

 

 

 

파티션 TRUNCATE

 

ALTER TABLE TB_SALE TRUNCATE PARTITION PR_TB_SALE_201801 ;

 

 

 

 

파티션 테이블 인덱스 생성

 

CREATE UNIQUE INDEX PK_TB_SALE ON TB_SALE (SALE_DATE, SALE_TIME, CUST_NO) TABLESPACE TS_INDEX LOCAL ;

 

 

 

 

 

파티션 테이블을 생성할 때 INDEX 설정 시 주의할 사항이 있습니다.

예를 들어 위와 같이 RANGE 파티션을 가진 테이블을 월별로 파티션을 분리한다고 했을 때 

테이블 전체에 INDEX 를 구성하는 것 보다 각각의 파티션 별로 INDEX 를 가지고 있어야 

대용량의 테이블을 조회할 때 더 효과적인 속도를 기대할 수 있습니다.

 

 

 

 

여기서 테이블스페이스의 INDEX 지정 시 LOCAL INDEX 가 아닌 default 로 설정하거나 GLOBAL INDEX 로 설정할 경우

파티션기준이 아닌 전체 테이블을 기준으로 INDEX 가 만들어지니 주의해야 합니다.

 

 

 

 

파티션 테이블이 GLOBAL INDEX 로 생성될 경우 테이블의 중간중간 데이터가 삭제되거나 변경된다면 

전체 테이블 기준으로 최적화된 INDEX 가 뒤죽박죽 될 수 있으나

LOCAL 로 생성되는 경우에는 다른 파티션의 INDEX 에는 영향이 가지 않으니 

INDEX 를 사용하는 SQL 인 경우 더 빠른 실행계획을 세울 수 있게 됩니다.

 

 

 

궁금한점이나 잘못된 부분이 있으면 댓글 남겨주세요^^

감사합니다.

 

 

https://hello-nanam.tistory.com/31

 

오라클 파티션 테이블 샘플(생성 수정 삭제) 및 주의사항

오라클 파티션 테이블 샘플(생성 수정 삭제) 및 주의사항 대용량 데이터를 조회 시 조금이라도 더 빠른 데이터의 접근을 위해서는 테이블을 파티션으로 분할하여 테이블을 생성할 수가 있습니다. 파티션 테이블 생..

hello-nanam.tistory.com

 

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

데이터베이스 강의 자료  (0) 2022.08.24
오라클 모니터링 세션 상태 체크  (0) 2019.07.18
오라클 날짜  (0) 2018.08.21
오라클 매월 말일 계산  (0) 2018.08.21
유저 테이블 삭제  (0) 2018.08.08

+ Recent posts