如何提高SQLLDR性能?

时间:2016-06-23 12:10:09

标签: oracle batch-file cmd sql-loader

我正在尝试通过csvsqlldr文件上传到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                                     

如何改善表现?

1 个答案:

答案 0 :(得分:1)

您可以使用alter table语句在加载期间关闭对表的记录。看看有没有记录的区别会很有趣。该表是否也有可以暂停的触发器?也许在加载之前删除索引并在加载之后重新创建而不是在加载期间更新它们?

只是抛出一些可能会加快一些事情的想法。请报告回来的内容(如果有的话)。期待看到最有益的东西。