我已将 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 前端副本,因为这将是维护的噩梦。