我試圖通過sqlldr
將csv
文件上傳到Oracle服務器,以進行批處理文件自動化。將文件上傳到Oracle服務器需要花費太多時間,其中包括sqlldr
。通過批處理,它可以在一分鐘內上傳2100行。當我嘗試從Oracle SQL Developer的csv
文件直接導入數據時,它在一分鐘內需要100k行。如何提高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)。 –
嘗試對BINDSIZE值進行一些更改,並將速度提高至12倍,現在插入速率爲400行/秒。任何想法增加約1000行/秒。謝謝 –