在做MIS开发时,遇到大批次数据会Insert到数据库,发现速度不是很理想,大概2W笔记录需要10分钟。我在更新时做了以下的努力:
1.采用了批次更新,每50笔记录提交到服务器一次。
2.SQL进行了优化,重复的取值已放在Loop外面。
烦请高手支招,请问一般大批次数据Insert到数据库时还需要注意哪些问题,有哪些途径可以提高执行效率。非常感谢!
估计数据量大时大概每次会有10W笔记录写到表中,并还会更新另外一个表10W条记录的字段(此字段已建索引),。
开发环境是Delphi+Oracle9i。

解决方案 »

  1.   

    是要批量提交事务,而且,我的经验,
    将脚本 ftp 到 oracle 服务器上提交,速度快了n倍,n> 30
      

  2.   

    是要批量提交事务,而且,我的经验,
    将脚本 ftp 到 oracle 服务器上提交,速度快了n倍,n> 30
    /////////////////////////
    如何将脚本 ftp 到 oracle 服务器?
      

  3.   

    更新其它表数据通过TIGER最好,估计你是INSERT一条会UPDATE另外一张一条,所以建议用TIGER
    INSERT通过事务提交脚本,不要通过程序运行
      

  4.   

    其实可尝试形成一个插入字符串: insert mytable(field1,field2) select 'value1','value2' from dual union select 'value11','value22' from dual.......
    然后每1000条提交一次数据库,实验效果证明,每秒可写5000多条数据。