背景:
     公司开展操作数据库的性能测试,分为VC和JAVA两组。环境:
     公司有AB两台电脑,A上安装了informix数据库,两种开发工具写的程序都向数据库表cs_table(50个字段)连续插入10000条记录,其中VC的运行在A上,JAVA的运行在B上。测试结果:
     VC的插入10000条记录用了22~23秒,而JAVA的仅仅用了9秒。真是颜面扫地。注:
     我是VC开发,少使用开发数据库相关软件,本次测试我的做法是使用ADO循环插入10000条记录。JAVA不清楚是怎么做的,但听说用了什么批处理。问题:
     VC可以提高速度吗?怎么提高?欢迎大家讨论。

解决方案 »

  1.   

    用odbc和它比
    而且我认为你的算法有问题,是不是一条一条往里写的啊
    ===================================================
    楼主努力颜面扫地的不是vc是楼主你
      

  2.   

    楼主使用方法错误,就比如io性能吧如果用C++ cout时每次都用endl刷新流,输出几万条字符串,性能比不过java
    但是,使用默认的流缓冲就比java快一点点了……
      

  3.   

    楼主丢了C++的人。C/C++访问Informix、Oracle,请使用 ESQL/C(Informix)、Pro*C(Oracle)
    嵌入式、预处理SQL——API直连访问数据库,没有比这更快的了。
      

  4.   

    如果仅仅使用ADO呢,怎么提高速度?
      

  5.   

    ADO下面是OLEDB,OLEDB下面是ODBC或COM,别人的Java多半是Java API直接数据库。
    你怎么比得过别人?ADO的优势在于可扩展性好,开发周期短,但效率不是最好的。一定要基于ADO,请注意:
    (1)只开一个长数据库连接,1W条数据写完后再关闭连接。
    (2)插入数据请用存储过程(预编译的,效率高一些),调用存储过程来插入数据。
      

  6.   

    不可能
    VC速度我不了解,但他不可能比JAVA访问数据库还慢
    尤其是JAVA和数据库建立连接的速度,那速度真是牛,就像牛似的
      

  7.   

    不能简单的说VC比JAVA慢,你两种语言分别是使用的什么技术访问的数据库??
      

  8.   

    ADO也有批更新,不要每次都update。
      

  9.   

    1. 用5楼的嵌入方法,性能比ODBC类通常来说有一个数量级的优势。2. 数据库访问的优化。简单的循环插入肯定没戏,至少要预编译一些SQL语句。这部分是数据库的内容,跟C没什么关系。
      

  10.   

    用批量更新的方法
    updatebatch()不要每次都用insert插入另外java方是怎么做的呢?
    用什么方法?