我有一个应用,每天从几千个文件中取出上百万条的数据插入ORACLE,
我现在只能用OLEDB 一条条的INSERT进去,但是效率太低了,而且占用数据库资源很大。我是用C#写的,调用的是OLEDBCLIENT类,
用COMMAND对象进行INSERT

解决方案 »

  1.   

    你可以进行限制么;比如500条提交一次;你频繁执行Insert当然慢了:)
      

  2.   

    以上两位,
    我不知道如何做到500次提交一次?可否给个提示或者SAMPLE CODE存储过程可以用数组一次性提交多条记录吗谢谢两位
      

  3.   

    500次提交一次是:在一个LOOP循环中,执行了500次INSERT后  在COMMIT
      

  4.   

    自己写个job定位读取文件插下记录,每1W条记录commit一次
      

  5.   

    2k或者3k条提交一次吧, 一条一条提交很慢很慢的
    ex: PLSQL
    for i in 1 .. n loop
    insert into ...;
    if mod(i, 2000) = 0 then 
    commit;
    end ;
    end loop;
      

  6.   

    如果需要往一个表里合并数据的话,最好不要直接插入到原始表,可以插入到一个空的临时表,然后用insert ...select ...语句,这样可以快很多