메뉴 건너뛰기

배경이미지

프로그램개발 - [ORACLE] 대용량 데이터 Insert 방법

Database
2016.05.21 23:31

[ORACLE] 대용량 데이터 Insert 방법

조회 수 2504 추천 수 0 댓글 0

데용량 데이터를 INSERT 할때 방법

 

insert /*+ APPEND PARALLEL(ems_test_temp 4)/ into ems_test_temp nologging
select /*+ PARALLEL(ems_test 4) */ * from ems_test;

 

or alter 명령어를 통해서 테이블 자체를 nologging로 바꾸고..
insert  작업이 끝나면 다시  logging 모드로 변경합니다..

 

alter session set optimizer_goal=all_rows;
alter session set sort_area_size=52428800;   <-- OS 환경에 따라 조절
alter session set hash_area_size=524288000;  <-- OS 환경에 따라 조절
alter session set db_file_multiblock_read_count = 128;  <-- OS 환경에 따라 조절
alter session enable parallel DDL;
alter session enable parallel DML;


append 를 사용했을 때의 여파를 생각하고 하셔야 합니다.append 는 HWM (High Water Mark) 를 직접 찾아서 그 지점부터 insert 해주기 때문에 성능에 효과를 볼수 있지만 테이블 자체에 delete 작업이 자주 일어 나는 경우 공간 낭비가 일어 날수 있습니다. 

그리고 parallel의 경우... 지금 정확히 기억이 나지 않는데. update일 경우에는 테이블 단위 lock이 발생 할겁니다..
--------------------------------------------------------------------------------------------------------
/*+ 이부분은 대용량 만질때 그냥 상투적으로 적어 주신다고 보시면 됩니다. */
alter session set optimizer_goal=all_rows;
alter session set sort_area_size=52428800;
alter session set hash_area_size=524288000;
alter session set db_file_multiblock_read_count = 128;
alter session enable parallel DDL;
alter session enable parallel DML;

truncate table table_name;
drop index table_name_index;

alter table table_name nologging;

insert /*+ append parallel(table_name 8) */ into table_name
select /*+ parallel(table_name1 8) full(table_name1) */ * from table_name;

create index table_name_index
TABLESPACE tablespace_name

NOLOGGING
PARALLEL 12;

ALTER TABLE table_name LOGGING ;
ALTER INDEX  table_name_index NOPARALLEL NOLOGGING;
----------------------------------------------------------------------------------------------------

http://download-west.oracle.com/docs/cd/B10501_01/server.920/a90842/apb.htm

 

출처 : http://mikyung.net/208

 

 







컴퓨터 프로그램

컴퓨터 언어 공부및 개발

List of Articles
번호 분류 제목 글쓴이 날짜 조회 수
2 Database [ORACLE] HINT 종류 상자 2016.05.21 706
» Database [ORACLE] 대용량 데이터 Insert 방법 상자 2016.05.21 2504
Board Pagination Prev 1 Next
/ 1