...   
strtnmtr = "select * from tnmtr where right(userid,6)='" & Right(rsTNCAL.Fields!userid, 6) & "'"                    Set rsTNMTR = New ADODB.Recordset
                  
                     rsTNMTR.CursorLocation = adUseClient
                     rsTNMTR.CursorType = adOpenStatic
                     rsTNMTR.LockType = adLockOptimistic
                     rsTNMTR.Open strtnmtr, MDBConn
...
当运行到这个时候(rsTNMTR.Open strtnmtr, MDBConn) 就会停留几秒 数据也只有20几万条 数据库为ACCESS
我也是需要里面的全部数据 并且还要做循环(根据条件每一条数据就需要打开一次数据库) 这样下来就特别慢
请问各位老鸟,我怎样才能将速度提起来呢(不修改数据库结构的情况下)?

解决方案 »

  1.   

    正常现象.打开那么大的表是要那么长时间.你可以通过:
    将数据改为SQL
    升级你的电脑来改善.
      

  2.   

    但是做了循环后 速度就慢多了,
      for ..
        ...
         (这中间也必须打开几张表)
        for ..
           ....
          (这中间也必须要打开好几张表.因为对方的数据放的特别乱)
        next
      next
    这样下来将几千条数据 ACCESS转换成DBF 就需要将近15分钟 
      

  3.   

    请问 小马哥(yoki)
       作循环时(2000次)每次都要停留几秒... 这样下来将近要停留十五分钟这样的速度太慢了      求救....!!!!!
      

  4.   

    执行SQL时千万别在循环里面实现,那样速度慢真的是自找的。你将所需要的内容在一个SQL语句里面实现,然后再去用代码进行取值。
    如果实在不行,你先将记录读出来写入一个数组,再判断数组这样也快一点啊