我试图通过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行/秒。谢谢 –