recordset.cursortype=adOpenKeyset
recordset.locktype=adLockOptimistic
recordset.MoveFirst                          
recordset.Find("jobcode='" & RsCur.Fields("jobcode").Value & "'", , , adBookFirst)
定位一个25000条记录的结果集需要5秒钟呀
有什么好方法解决此问题吗

解决方案 »

  1.   

    你其实如果要求速度得话可以用组合得sql语句,这样速度要快些
      

  2.   

    使用 Find 必须配合索引,默认情况下,Find 没有使用到索引,是进行行扫描,速度当然巨慢CursorLocation = adUseClient  '必须是客户端光标才能使用索引
    关键初
    打开记录集后
    Dim Fld As ADODB.Field
      Set Fld = rs.Fields("jobcode") '需要索引得字段
       Fld.Properties("Optimize") = True
    再进行 Find ,你会发现速度有百倍得提升
      

  3.   

    第一次会稍慢,但后面再Find 是就巨块了
      

  4.   

    更多关于 ADO 数据操作优化,可以看我得 http://blog.csdn.net/zlt982001/
      

  5.   

    我只是增加
    CursorLocation = adUseClient
    了这个就非常快了!不用设置
    Dim Fld As ADODB.Field
      Set Fld = rs.Fields("jobcode") '需要索引得字段
       Fld.Properties("Optimize") = True