代码之家  ›  专栏  ›  技术社区  ›  Thorsten

拆分访问数据库后的性能降级

  •  0
  • Thorsten  · 技术社区  · 15 年前

    我们有一个access数据库应用程序。(免责声明:我们本希望采用不同的技术,但事情发生了…)为了并行使用和开发数据库,我们将数据库分为“数据”(后端)和“应用程序”部分,这似乎是访问数据库的最佳实践。

    现在性能已经降低,过去是即时的查询现在需要几秒钟。这有点令人惊讶,因为“更好的性能”被认为是分裂DB的利器之一。我们能做什么使性能回到原来的水平甚至更好?


    更新

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

    3 回复  |  直到 15 年前
        1
  •  2
  •   Fionnuala    15 年前

    您需要确保每个用户都有一个前端的副本。您还需要确保到后端的路径很短。 Tony Toews, MVP 有更多的表演技巧。

        2
  •  2
  •   David-W-Fenton    15 年前

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

    不过,这可能只在测试台服务器与生产服务器不同的情况下才起作用。如果这两个服务器都在同一台服务器上,则这种可能性要小得多,尽管很长的路径可能会导致性能瓶颈。

    这是 Tony's Performance FAQ 但让我指出,你把后端放在哪里会有不同。我避免使用长路径名,并尝试将所有后端MDB存储在服务器上的顶级存储中。也就是说,\server\databases而不是\server\data files\my workgroup\my long pathname,其中包含空格和其他内容。

        3
  •  -3
  •   yfeldblum    15 年前

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