拆分 MS Access 数据库需要很长时间才能打开 - 后端不断锁定和解锁

Posted

技术标签:

【中文标题】拆分 MS Access 数据库需要很长时间才能打开 - 后端不断锁定和解锁【英文标题】:Split MS Access Database takes a long time to open - back end keeps locking and unlocking 【发布时间】:2015-10-22 16:11:17 【问题描述】:

我有一个拆分的 MS Access 数据库。大多数数据是通过通过 VBA 运行的 SQL 查询填充的。当我第一次连接后端数据时,需要很长时间,并且后端文件(.accdc 文件)锁定和解锁 3 或 4 次。不是每次开锁的次数都一样,但是这种加锁和开锁对应的是需要一段时间才能打开。当我第一次打开前端时,它没有连接到后端。这一步完成得非常快。不过,我第一次连接到后端时,可能需要一段时间。 关于加快此过程并使其在第一次尝试时更可靠地发生的任何建议?这是一个多用户文件,我不想对注册表进行任何更改,因为这需要为我部门的每个人进行更新。我主要担心它需要一段时间才能打开,但我认为锁定和解锁似乎很奇怪,可能是其他原因的影响或症状。

【问题讨论】:

多用户?您应该使用真正的客户端-服务器数据库,例如mssql, postgres, mysql, etc...不能访问。 不知道为什么您会看到多个锁定/解锁,但几年前我们通过创建变量提高了 FE/BE 的性能: Public rsAlwaysOpen As DAO.Recordset Global gv_DBS_Server As DAO.database Then Set rsAlwaysOpen = gv_DBS_Server.OpenRecordset("一些无关紧要的表") 如果您将后端 db 文件的文件扩展名从 .accdc 更改为 .accdb,然后更新前端链接以指向该文件名,您是否看到任何改进? 【参考方案1】:

在大多数情况下,如果您使用持久连接,那么您注意到的慢速进程只会在启动时发生一次。 这个和其他一些性能提示可以在这里找到:

http://www.fmsinc.com/MicrosoftAccess/Performance/LinkedDatabase.html

10 次中有 9 次,以上将因此修复运行应用程序时的“延迟”。您可以简单地打开任何链接表进行测试,最小化该表,然后尝试运行您的代码或启动表单 - 注意延迟是如何消失的。

【讨论】:

以上是关于拆分 MS Access 数据库需要很长时间才能打开 - 后端不断锁定和解锁的主要内容,如果未能解决你的问题,请参考以下文章

MS-Access 慢查询

数据库项目需要很长时间才能打开

将逻辑回归模型拟合到 MNIST 数据需要很长时间

PHP页面需要很长时间才能加载

为啥添加单个实体后我的核心数据需要很长时间才能保存?

将视图插入表格 - 视图不需要很长时间才能运行 - 插入需要很长时间