cursor类型该用adUseClient吧?
_Recordset open的时候使用adOpenForwardOnly能快一点?

解决方案 »

  1.   

    和adOpenStatic 差不多吧。。主要还是建好索引。
      

  2.   

    存储过程能加快速度么?
    毕竟存储过程里也就是一个select 
      

  3.   

    我一次select出来100万时,用adOpenStatic 会出错,用adOpenForwardOnly是正常的,也是最快的,但是速度方面还是满足不了要求。 
      

  4.   

    分解处理,用返回固定的记录条数来处理,分页的方式来处理,假设每页取10W行,分10次查询!
    在Oracle数据库中需要结合ROWNUM来完成,可以用如下方法来实现,如要取按ROWID排序的5000到10000之间的记录 
      SELECT * FROM vehicle WHERE ROWNUM<10001 minus SELECT * FROM vehicle WHERE ROWNUM<5001; 
      如果需要按照某字段排序来查询,如,按制造商Make来排序,就需要用到子查询,性能就会有明显的影响 
      SELECT * from (SELECT * FROM vehicle order by make) WHERE ROWNUM<10001 minus SELECT * from (SELECT * FROM vehicle order by make) WHERE ROWNUM<5001;
      

  5.   

    游标移动一次,就等于一次select,不信你可以去SQL版块问
      

  6.   

    如果每次取几十条,岂不是要执行Open几十万次么?这样会快吗?