分割Access DB后性能下降

时间:2009-04-30 10:27:58

标签: ms-access

我们有一个Access数据库应用程序。 (免责声明:我们更喜欢不同的技术,但事情会发生......)。为了并行使用和开发数据库,​​我们将数据库拆分为“数据”(后端)和“应用程序”部分,这似乎是Access DB的最佳实践。

现在性能已经降低,过去的查询现在需要几秒钟。这有点令人惊讶,因为“更好的性能”被认为是分裂数据库的一个优点。我们可以做些什么来将性能恢复到原来的水平甚至更好?


更新

我们已经做了一些测试来解决这个问题。似乎问题是由永久访问的工作组文件(.mdw)引起的,并导致相当多的网络流量(具有不可避免的延迟问题)。当我将.mdw复制到本地文件并使用它时,性能非常好。显然,复制文件不是一个好的解决方案(因为我们希望将网络上的Access DB提供给未知数量的用户)。有更好的想法吗?

3 个答案:

答案 0 :(得分:2)

您需要确保每个用户都拥有前端的副本。您还需要确保后端的路径很短。 Tony Toews, MVP有更多的效果提示。

答案 1 :(得分:2)

值得关注的是生产应用程序是否只是更新链接表连接字符串。有时Access会在链接表中缓存元数据,从而导致数据查询效率极低。解决方案是完全删除链接表,并在这种情况下从头开始创建它们。

但是,如果您的测试平台服务器与生产服务器不同,那么这可能很重要。如果两者都在同一台服务器上,那么这种可能性要小得多,尽管长路径可能会导致性能瓶颈。

这是Tony's Performance FAQ中的建议之一,但让我指出,你把后端放在哪里有所作为。我避免使用长路径名并尝试将所有后端MDB存储在服务器上的顶级存储中。也就是说,\ Server \ Databases而不是\ Server \ Data Files \ My Workgroup \ My long pathname with spaces and stuff。

答案 2 :(得分:-3)

唯一的好办法是从使用Access切换到使用其他一些技术。