我今天去了客户那里并安装了一些自定义软件,该软件可以访问位于客户那里的服务器上的 SQL Server 2005 数据库。
软件直接在服务器上运行时运行良好,问题是当软件在客户端计算机上运行时,任何涉及访问 SQL 数据库的操作都会使 PC 完全停止运行几秒钟。客户端和服务器计算机上的 CPU 使用率都很低,两者的内存使用率看起来都很好。
客户端机器上的其他功能似乎足够快,例如互联网、Excel、Word等。
定制软件安装在其他几个不同的客户站点上,SQL 访问速度没有问题,所以我 99% 确定它与软件无关。客户端计算机和服务器都有大约 3 - 4 年的历史,但在过去 6 个月内进行了完全格式化并重新安装。
这 3 台机器的硬件配置基本相同:
奔腾 4 2.66GHz
1GB RAM(服务器 2GB)
Windows XP(自动更新已打开,因此我推测补丁都是最新的)
全部连接到 100MB 网络
有谁知道是什么原因导致客户端机器 SQL 访问如此缓慢,或者我可以使用什么工具(最好是免费的)来尝试诊断问题?
答案1
既然您说 CPU 和内存看起来不错,我会查看线路和客户端要求服务器执行的查询。
在客户端,我愿意尝试 Wireshark,看看客户端和服务器之间的对话是什么样的(延迟、重传等)。不过,在客户端的前几次捕获过程中,我不认为我会将对话范围缩小到客户端和服务器,以防客户端发出一些其他数据包(虚假的名称解析请求、尝试连接到其他服务等),这可能会给你一些线索。
在服务器上,SQL Server Profiler 跟踪可以为您提供一些关于客户端请求的内容以及服务器如何响应的非常低级的信息。Microsoft 提供了一个基本操作文档帮助您入门。
答案2
答案3
感谢上述帖子帮助我缩小了问题范围(我没有声誉来投票赞成它们:()
在对设置等进行了大量调整后,出于好奇,我将客户端计算机上 SQL 服务器的连接字符串从使用主机名引用服务器更改为使用 IP。这立即解决了问题,一切都运行良好。
我认为这是因为“服务器”实际上并没有运行服务器操作系统(它只是网络上另一台运行 XP 的机器),所以没有合适的 DNS / WINS 服务器来进行主机名转换??
不管怎样,它现在都可以工作了,谢谢你的帮助。