【问题标题】:Access Database with SQL Server Backend: Dramatic Slow Down with Multiple Users使用 SQL Server 后端访问数据库:多用户时速度急剧下降
【发布时间】:2013-07-17 21:52:55
【问题描述】:

我已将 Access 2007 数据库迁移到 SQL Server 2008 R2 后端,保留带有链接表的 Access 前端。少数用户的性能很好。

昨天,该应用程序向多个用户开放,下午的表现简直糟透了。从字面上看,前端打开或关闭,或做任何事情都需要几分钟。关闭的延迟似乎特别奇怪,因为它是通过主菜单上的一个按钮完成的,该按钮只调用 Application.Quit。什么都不做。

我发现旧的 LDBView 实用程序似乎适用于 .laccdb 文件。它显示了 11 个登录的用户以及另外 15 个不再登录的用户。它没有显示用户名,只是他们连接的机器名称。这些机器名称大多是两个虚拟主机,所以我不知道它们实际上是不同的用户还是被多次报告的同一用户(对 .laccdb 文件的格式了解不够,无法分辨)。

我复制了麻烦的 Access 前端文件(.accdb 文件)并从与原始文件相同的网络位置运行该副本。它运行良好。所以问题似乎不在于网络,也不在于 SQL Server 数据库,或者 Access 前端以某种方式损坏。

排除这些可能性后,问题似乎与多个用户同时使用同一个 Access 前端有关。在将表迁移到 SQL Server 之前,原始 Access 数据库对于相同数量的用户运行良好。所以前端的基本设计似乎能够支持多个用户。

我将如何在 Access 前端追踪争用问题的根源?对我来说,除了查看 .laccdb 文件中的并发用户数之外,似乎看不到正在发生的事情。

顺便说一句,由于原始 Access 数据库可以很好地处理多个用户,我被告知每个用户都无法拥有自己的 Access 前端副本,因为这将是一场维护噩梦。

【问题讨论】:

    标签: ms-access ms-access-2007


    【解决方案1】:

    用户不应使用相同的前端副本。他们每个人都应该有自己的副本,可以保存在他们的个人驱动器中。

    您保留自己的前端副本,对其进行修改,然后将其重新分发给用户,以替换他们的旧版本。

    共享单个前端副本是绝对禁忌。这是一场噩梦......并且是您遇到问题的最可能原因。

    【讨论】:

    • 谢谢安迪。不幸的是,目前这不是一个选择。最大的问题是原始的 Access 数据库与多个并发用户一起工作,并且认为迁移后的带有 SQL Server 后端的 Access 应用程序的功能不应该比原始的更难使用或维护。我经常想知道迁移数据库和使用 LightSwitch 或 Alpha 5 重写前端是否会更简单。但考虑到表单之间的交互,这将需要对界面进行重大重新设计。
    • Manager 已同意为每个用户部署单独的 Access 前端。今天早上有 11 个并发用户在前端的单个副本中没有问题,但比抱歉更安全。
    • 那很好。我对你没有其他建议,除了延长假期;)。我在服务器上保留了一个前端文件夹,为这些前端编号,并指示用户将最新版本复制到他们的个人驱动器中。如果您不信任他们这样做,那么您可以通过电子邮件将他们的副本发送给他们,并说明如何将其复制到他们的个人驱动器或本地。
    • 当我修改前端时,我也会将其复制到本地,对其进行处理,然后对其编号并复制回前端文件夹。您必须坚持让他们复制他们的前端副本,而不是使用共享驱动器上的那个!
    • 对我们来说还有一个额外的转折点:大多数用户在一个城市,而 SQL Server 在另一个城市。这两个站点通过 WAN 连接。其中一位用户尝试在本地运行 Access 前端。太多的延迟。因此,我们现在在与 SQL Server 相同的 LAN 上的终端服务器上获得了 Access 前端的多个副本。 IT运维给了用户快捷方式,不同的快捷方式指向终端服务器上前端的不同副本。他们正在整理一个批处理文件,以将任何新版本复制到终端服务器上的每个前端副本。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-23
    • 2014-01-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多