我正在尝试通过csv
将sqlldr
文件上传到Oracle服务器,以实现我的批处理文件自动化。使用sqlldr
将文件上传到Oracle服务器需要花费太多时间。通过批处理,它可以在一分钟内上传2100行。当我尝试直接从Oracle SQL Developer的csv
文件导入数据时,它在一分钟内需要10万行。
这是我的.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 abc123@test/demo1 DATA='D:\Event.csv"
CONTROL=D:\Insert.ctl LOG=Insert.log BAD=Insert.bad
如何改善表现?
答案 0 :(得分:1)
您可以使用alter table语句在加载期间关闭对表的记录。看看有没有记录的区别会很有趣。该表是否也有可以暂停的触发器?也许在加载之前删除索引并在加载之后重新创建而不是在加载期间更新它们?
只是抛出一些可能会加快一些事情的想法。请报告回来的内容(如果有的话)。期待看到最有益的东西。