我有一个使用 MSDE 构建的旧版 VB6 应用程序。
随着许多客户的数据库增长到 MSDE 2 GB 的限制,它们会升级到 SQL 2005 Express。
直到今天,这已被证明非常成功。
当通过“网络”连接 SQL 2005 Express 命名实例时,我花了一整天的时间对客户端网络进行故障排除,在该网络上我们的应用程序运行缓慢。
我说“网络”是因为它只有两台 XP SP2 机器——这里没有专用服务器。没有广告。
为了解决这个问题,我在两台机器上都安装了 SQL 2005 Express,并在两台机器上放置了我们数据库的副本。我什至使用我们现在拥有的 SQL2005 Express 安装例程完全重新安装了我们的应用程序。是恢复旧的 MSDE 数据库还是使用新创建的 SQL 2005 Express 数据库没有区别。
当运行我们的应用程序并连接到任何一台机器的本地服务器时,性能都很好。一旦您将任何一台 PC 上的应用程序连接到另一台 PC 上的服务器,它的速度就会非常慢。(无论组合如何)。
现在,我已经重建了统计数据(exec sp_updatestats),重建了所有索引,禁用(暂时)防火墙和病毒软件,并抓住了无数其他的稻草。
我求助于在两台机器上运行 FileMon 和 ProcessMon,甚至编写了一个小测试应用程序来简单地连接和查询数据库中的表。它也运行缓慢 - (连接大约需要 5 - 6 秒)。
当 SQL Server 写入日志文件 (c:\program files\microsoft sql server\mssql.1\log files\log_12.trc) 时,监视器(文件和进程)显示延迟。
但其他工具,如 SQL Management Studio Express 甚至 SSEUtil(我发现的一个 SQL Server Express 诊断实用程序)在从客户端连接到服务器时运行良好。查询(甚至是大查询)会按照您的预期运行。
我确信这个问题是环境问题,因为我们有这么多站点运行看起来相同的设置,没有这样的问题。
有人可以告诉我我应该做些什么来隔离这个问题,甚至提供任何可以帮助解决这个问题的线索或建议吗?