我用BCB写了一个小程序往oracle数据库中分析转移数据,记录数有10万条之多,我直接用Table表插入数据,但速度太慢,我估计得用上百个小时才能完成,请问这是什么原因,有谁能帮我解决一下,不胜感激!

解决方案 »

  1.   

    把控件的Controls先去掉,优化语句,把你的代码放出来看看
      

  2.   

    用批copy,不要一条一条的插入
      

  3.   

    怎样用块copy呢?
    我是个初学者,用的方法可能是不是太笨了:
    while(...)
    {
      //读取数据并分析; 这一部分速度不慢
         .
         .
         .
      Table->Insert() ;
      TableCODE->AsString = "101" ;
      TableNAME->AsString = "kkk" ;
       .
       .
       .
      TableNUMBER->AsString = "999" ;
      Table->Post() ;
    }
      

  4.   

    我也弄不明白,
    我用的环境是:P4 + win200 + bcb6 + oracle8.0.5
      

  5.   

    我用bcb写过往MSSQL写数据的程序,一百万条也就1个小时。
      

  6.   

    用sql写吧,我原来的那个就用的sql。
    insert into table (xxx,xxxx,xxxx) values(xxx,xxxx,xxx) 
    就好了。
      

  7.   

    1、请注意待插入记录的表的关键字
      (设定关键字有利于提高查询速度和数据的完整性唯一性,
        但对插入记录的速度有一定影响)
    2、你一条一条记录的插入是非常不合理的,
       你每次Insert一次,BDE ODBC Oracle之间要做很多处理,   最好想办法,在后台数据库中用SQL语句一次性把符合条件的记录
       处理掉,这样要是速度不快。。