VC6下用ODBC连Oracle,表中大约5000条纪录,每个纪录大约200个字段(double)已经做以下测试:
m_pSet->Open();
while (!m_pSet->IsEOF()) {
    m_pSet->MoveNext();
}
就执行这个循环用了大约6秒。请问这种做法是不是一次只取一条纪录?如果是,是不是频繁I/O导致这么慢?我的想法是一次把所有数据读到内存,请问各位有什么好的办法?最好有源码,谢谢。

解决方案 »

  1.   

    应该是一次(最好在起服务的时间)把数据就加载到内存中,都当对象来处理
    会快的多
    对了你用odbc去连oracle可能也很影响速度
      

  2.   

    是啊,我也想那么做,可是怎么实现呢??烦劳详细点,谢谢。还有:“用odbc去连oracle可能也很影响速度”,能不能解释一下影响速度的原因?
      

  3.   

    如果是ORACLE数据库,用ADO要比ODBC快的多。
      

  4.   

    谢谢jnxulei。
    那一次性把所有记录读到内存怎么实现呢?这个问题我现在特别想知道怎么解决。
    //bow
      

  5.   

    那是不是说,如果用ODBC连接Oracal,6秒这个瓶颈很难突破?
    如果用ADO的话,能提高到多少?
      

  6.   

    能不能介绍关于存储过程语法方面的文档,我不太知道那东西是什么格式的。
    还有,存储过程好像不利于今后移植啊?btw,我刚才用bulk将整个表的内容的取到内存,速度没有明显优化……,郁闷ing
      

  7.   

    用Bulk也有个问题,字符串字段读不出来,只能读出来第一条记录的那个字段的值。其他字段正常,怎么回事啊?
      

  8.   

    我自己解决了,用的bulk,一直读到内存。
    感谢大家的帮助