배치 파일 자동화를 위해 sqlldr
을 통해 csv
파일을 Oracle 서버에 업로드하려고합니다. sqlldr
으로 오라클 서버에 파일을 업로드하는 데 너무 많은 시간이 걸립니다. 배치를 통해 분당 2100 개의 행을 업로드합니다. Oracle SQL Developer에서 csv
파일의 데이터를 직접 가져 오려고하면 1 분에 100,000 개의 행이 필요합니다.SQLLDR 성능을 향상시키는 방법?
이 내 .ctl
파일입니다
OPTIONS(SKIP=1)
LOAD DATA
INFILE "D:\\TestBackup\Event.csv"
INSERT into table EVENT
APPEND
fields terminated by ',' OPTIONALLY ENCLOSED BY '"'
TRAILING NULLCOLS
(BRANCH_ID,TOTAL_SALES,TOTAL_LOST_SALES,TOTAL_INVENTORY,INSERTDATE sysdate
)
이 내 .bat
파일입니다
sqlldr [email protected]/demo1 DATA='D:\Event.csv"
CONTROL=D:\Insert.ctl LOG=Insert.log BAD=Insert.bad
어떻게 성능을 향상시키기 위해?
인용문이'sqlldr' 명령에 맞습니까? 아니면 올바르게 붙여 넣기되지 않았습니까? – Glenn
설명서를 보셨습니까? BINDSIZE 및/또는 READSIZE를 변경하는 것이 좋습니다. [그리고 이것을보십시오] (https://docs.oracle.com/cd/E11882_01/server.112/e22490/ldr_control_file.htm#SUTIL1135). –
삽입 속도가 400 행/초인 BINDSIZE 값과 속도를 최대 12 배까지 변경해보십시오. 약 1000 개의 행/초를 증가시키는 아이디어. 감사합니다 –