TECH
QUESTION
자주하는 질문답변 입니다.
Oracle
작성자 | 유건데이타 | 등록일 | 2015-05-16 |
제목 | IMPORT PERFORMANCE TIPS | ||
---|---|---|---|
TIPS(49) : IMPORT PERFORMANCE TIPS
================================== PURPOSE -------- [Import 의 Performance] Oracle import를 실행 시 많이 걸리는 시간을 줄이기 위해 다음의 현상을 적용해 보자. Explanation ------------ 1) System 적 변경 - DB 를 다시 create 할 경우 DB_BLOCK_SIZE를 증가시킨다. 이 block size 가 큰 경우, 더 작은 I/O cycle 이 발생한다. 이 변경값이 permanent한 경우는 변경 전과 비교한 모든 효과를 고려한다. - 1개의 커다란 rollback segment 를 생성하고, 이외의 rollback segment는 모두 offline 한다. - 1개의 rollback segment는 import 되어질 table 중 가장 큰 것의 50% 정도로 잡는다. import 는 기본적으로 insert into table_name values (,,,,,) 이고 이 경우 rollback segment 에는 rowid 만 들어가게 되므로 2개의 같은 size 인 extent를 갖는 rollback 을 생성하면 된다. - import 가 끝날 때까지 database 를 NOARCHIVELOG mode로 유지한다. 이는 archive log 를 생성하는 overhead 를 없앨 수 있다. - rollback segment와 마찬가지로, 커다란 redo log file을 생성한다. 클수록 log switch 가 발생하지 않으므로 import 시는 좋다. 작은 size 의 redo log 는 offline 하도록 한다. alert.log 에 나타나는 'Thread 1 cannot allocate new log, sequence 17, Checkpoint not complete'의 메시지는 좀 더 크거나 더 많은 갯수의 redo log file 이 필요함을 나타낸다. - 가능하다면 table, rollback, redo log file 이 다른 disk에 있도록 한다. 이는 i/o contention을 줄일 수 있다. 2) Init.ora Parameter 변경 - LOG_CHECKPOINT_INTERVAL을 redo log file의 size 보다 크게 준다. 이 숫자는 OS block 을 의미하여 unix 에서는 512 byte 이다. 이를 크게 하면 log swich time을 줄일 수 있다. - SORT_AREA_SIZE를 증가시킨다. 인덱스를 아직 생성하지 않았다 하더라도, unique, primary key는 있기 때문이다. 이 값의 증가는 같은 machine 안에 별도의 어떤 작업이 있는가, free memoty 가 얼마 만큼 있느냐에 따라 다르긴 하지만 평상 시의 5-10 배로 한다. 만일 machine이 swapping이나 paging이 발생하면 더욱 크게 해준다. 3) Import Options 변경 - COMMIT=N option을 사용한다. 이를 사용하면 buffer의 data 가 insert되고 commit함이 아니라, 각 object(table) 의 모든 data가 insert 후 commit 된다. 만일 rollback 이 작다면 이 option 을 이용할 수 없다. - BUFFER 크기를 크게 한다. 이것 역시 시스템의 다른 activity 나, 데이타베이스 크기에 따라 다르다. 이 값이 크면 export file을 access 하는 횟수를 줄일 수 있다. - import 시 INDEXES=N option을 사용한다. 만일 index를 생성 시는 SORT_AREA_SIZE 는 더욱 커야 한다. |
Comment | |||
---|---|---|---|
등록된 코멘트가 없습니다. |