客户端计算机上的 SQL Server 访问速度很慢

客户端计算机上的 SQL Server 访问速度很慢

我今天去了客户那里并安装了一些自定义软件,该软件可以访问位于客户那里的服务器上的 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

可能是客户端首先尝试使用服务器未侦听的协议进行连接。例如,客户端首先尝试通过 SMB 进行网络管道连接,当超时时,它们会尝试 TCP(顺便说一下,这是默认行为)。如果服务器未侦听网络管道或客户端的 NetBIOS/SMB 基础架构存在问题,则连接将显得非常缓慢。当您在服务器上进行连接时,它将直接与共享内存连接并立即成功。

配置客户端网络协议如何(全局)更改客户端计算机上的网络设置。或者尝试使用强制使用特定协议的连接字符串,如datasource=tcp:hostname,port。此外,检查服务器网络配置查看服务器正在主动监听哪些协议。

答案3

感谢上述帖子帮助我缩小了问题范围(我没有声誉来投票赞成它们:()

在对设置等进行了大量调整后,出于好奇,我将客户端计算机上 SQL 服务器的连接字符串从使用主机名引用服务器更改为使用 IP。这立即解决了问题,一切都运行良好。

我认为这是因为“服务器”实际上并没有运行服务器操作系统(它只是网络上另一台运行 XP 的机器),所以没有合适的 DNS / WINS 服务器来进行主机名转换??

不管怎样,它现在都可以工作了,谢谢你的帮助。

相关内容