메뉴 건너뛰기

배경이미지

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

Database
2016.05.21 23:31

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

조회 수 2500 추천 수 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
번호 분류 제목 글쓴이 날짜 조회 수
19 Unix/Linux [Linux] source 로 설치한 패키지의 pkg-config 정보가 인식이 안될때 마리오 2018.01.12 1276
18 Unix/Linux Linux 주기적으로 자동으로 시간 동기화하기 상자 2017.11.04 233
17 C/C++ linux 에서 gcc 컴파일하기 마리오 2016.11.25 409
16 Unix/Linux CentOS 에서 minimal로 설치 후 X windows 설치 하는 방법 마리오 2016.09.12 202
15 Unix/Linux CentOS 6 Minimal - VMware 네트워크 설정하기 마리오 2016.09.12 277
14 Unix/Linux CentOS 6.x 에서 mysql 과 apache(httpd) 를 자동 실행 설정 방법 마리오 2016.09.07 256
13 JAVA CentOS 에서 rpm으로 java 최신버젼 설치하기 마리오 2016.08.26 278
12 Database [ORACLE] HINT 종류 상자 2016.05.21 705
» Database [ORACLE] 대용량 데이터 Insert 방법 상자 2016.05.21 2500
10 Android genymotion 안드로이드 google play services 상자 2016.04.03 246
9 Android 안드로이드 스튜디오 - 애뮬레이터 , Genymotion, 상자 2016.03.26 431
8 Android WebView android 4.4.2 킷캣 이미지 올리기에 대한 자료. 상자 2016.03.21 2424
7 Android 인트로 화면 만들기 상자 2016.02.29 800
6 Android 안드로이드 Intent 사용 예시 상자 2016.02.29 284
5 Unix/Linux 유닉스 계열에서 소스컴파일 설치 후 소스디렉토리 지우지 말것. 상자 2016.02.26 309
4 Unix/Linux php.ini 위치 찾기 상자 2016.02.26 409
3 Android android.os.NetworkOnMainThreadException 해결방법 상자 2016.02.25 1823
2 Android PHP WEB서버 기반 스마트폰 푸시(PUSH) 서비스 만들기 file 상자 2016.02.24 2094
1 Android Unauthorized Error 401 오류 - 안드로이드 푸시 알람 file 상자 2016.02.24 2350
Board Pagination Prev 1 Next
/ 1