가. Conventional Path : 데이터 입력/조회 시 DB Buffer Cache를 사용하여 작업하는 방식, Redolog를 기록하므로 장애발생 시 복구가 가능하나 Direct Path방식에 비해 작업속도가 느리다.
나. Direct Path : 대량의 데이터 입력 시 사용하는 방법, 메모리(DB Buffer Cache 등)를 사용하지 않고 Datafile에 바로 저장하여 작업속도는 빠르나, 장애발생 시 복구할 수가 없다(작업 재수행 필요), 작업도중 작업대상 테이블에는 Exclusive Lock이 걸려 DML작업이 금지된다.
2. SQL Loader
가. 개요 : 다른 응용프로그램에서 생성된 데이터 파일을 오라클DB에 입력하고자 할 때 사용하는 프로그램, Direct Path 방법을 사용하며 대량의 데이터 입력에 유용하다.
나. SQL Loader 사용 전 확인사항
- NLS_LANG=AMERICAN_AMERICA.KO16MSWIN949
- ORACLE_HOME=/home/oracle/product/10g
- LB_LIBRARY_PATH=$ORACLE_HOME/lib
- ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data (8 이상 버전)
- ORA_NLS10=$ORACLE_HOME/nls/data (10g 이상버전)
다. 사용예제
<입력 데이터 : data.csv>
10,"회계","서울"
20,"경영","부산"
30,"영업","대전"
40,"판매","대구"
20,"경영","부산"
30,"영업","대전"
40,"판매","대구"
<컨트롤 파일 : test.ctl>
load data
infile 'data.csv'
replace
into table test
fields terminated by ',' optionally enclosed by '"'
(deptno integer external,
dname char,
loc char)
infile 'data.csv'
replace
into table test
fields terminated by ',' optionally enclosed by '"'
(deptno integer external,
dname char,
loc char)
<작업대상 테이블 : test>
1
2
3 |
create table scott.test (deptno number(2), dname varchar2(10), loc varchar2(6)) tablespace example; |
<데이터 입력>
$ sqlldr scott/tiger control=test.ctl