一个奇怪的问题,程序采用EXE+DLL,数据库连接采用BDE,写在DLL文件里面,数据库记录很少时没有任何错误,连接速度也快,但是记录超过2000条以后,第一次打开程序,就是用一用APPEND,或者是QUERY。OPEN也要好几秒钟,连接过一次后,再执行同样的操作就非常快了,很是不解

解决方案 »

  1.   

    还不光是数据库连接,有时打开一个窗体也是这么慢,但打开一次后,就没有问题了,DLL文件的大小是不是有限制的啊?我这个DLL已经有5M多了
      

  2.   

    因为第一次操作的时候dll有一个加载过程
      

  3.   

    其实这个是跟数据库有关系的, 不知道你用的是不是MSSQL,这类的数据库在查询时有一定的工作方式,它们有一个高效的查询优化器,你在第一次查询时会在内存中留下相应的信息,当你第二次再查询的时候它会利用刚才查询的信息来显示,这样就加快了查询的速度,
      

  4.   

    是用MSSQL,不过就2000条的数据量,检索要花8、9秒吗?如果直接在查询分析器中,不用1秒就解决了
      

  5.   

    可能是系统调用你的dll太慢了,你是静态调用的dll吧。
      

  6.   

    问题:
    1.系统调用dll速度慢
    2.建立数据库连接慢
    解决:
    1.数据库访问代码最好直接放在程序中,或一个单独的dll
    2.使用database控件建立一个静态的数据库连接
      

  7.   

    数据多与少带来两中不同的反应速度,建议优化sql语句,尽量少取数据,应该与你的数据库速度有很大关系
      

  8.   

    试一下,在数据库中添加索引,虽然query没有明确索引,但实际右面有速度差别很大。
      

  9.   

    终于发现是用了text类型字段的原因,改成varchar就很快了,但是如何解决query不能超过255问题???