【问题标题】:Optimize opening Access Database over High Latency Network via DAO in VB6在 VB6 中通过 DAO 优化通过高延迟网络打开 Access 数据库
【发布时间】:2019-07-09 04:37:36
【问题描述】:

继承的应用程序随着时间的推移正在转换到新平台。但是,与此同时,正在寻找简单的修复程序来提高高延迟连接的性能。在某些情况下,需要几秒钟的操作在远程站点上可能需要 10 分钟。

经过分析,主要问题是同一个记录集被DAO打开了数百次,每次打开记录集的尝试都在发起对文件共享托管MDB文件的回调。由于连接的高延迟,这些多次调用是昂贵的操作。

MDB 文件本身通常很小,通常为几 MB,这些文件只能为打开文件的用户独占打开。

Dim db As DAO.Database
Dim rs As DAO.Recordset

Set db = DAO.OpenDatabase("<path to mdb>", True, False, "")
Set rs = db.OpenRecordset("Data")

关于更好地缓存数据或以最少的重新编码减少网络流量的选项的任何建议。

虽然不需要使用 DAO,但理想情况下,任何替代方法都可以轻松替换为 DAO。

【问题讨论】:

  • Mode=Share Deny Write 至少可以避免创建和更新锁定文件 (.LDB),但我不确定还能做些什么。
  • 您必须告诉我们数据是如何使用的,然后我们可能会告诉您如何优化它。它是只读的还是有很多写入?您是经常重新打开数据库,还是使用某种方式从单个数据库实例中打开这数百个记录集?
  • 复制到本地,工作,复制回来?
  • 您的远程用户是否都需要更新数据库,或者他们只是在运行查询?
  • 数据库已更新,但可以在点击“保存”时更新

标签: ms-access vb6 dao


【解决方案1】:

此设置超出了建议的使用范围。至少,WAN 连接应该通过高速低延迟光纤连接。

然而,可行的是通过 OneDrive 同步两端的文件夹,因为同步的文件在本地缓存和访问。当然,在这种情况下,只有一个用户可以同时使用数据库,因为您无法控制同步的方式和时间。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-04-12
    • 1970-01-01
    • 2014-05-25
    • 1970-01-01
    • 1970-01-01
    • 2012-01-03
    • 1970-01-01
    • 2011-02-21
    相关资源
    最近更新 更多