当我在生产 SQL Server 上运行的 SSMS 中运行简单查询(例如“从表 A 中选择列 1、列 2”)时,结果似乎需要很长时间(>45 分钟)。如果我从连接到生产 SQL Server 的开发系统的 SSMS 运行相同的查询,结果将在几秒钟内返回(<60 秒)。
我注意到的一件事是,如果系统刚刚重启,性能会好一点。很难确定具体时间,因为我曾经遇到过系统在重启后很快开始运行缓慢的情况,但最多运行 20 分钟后就开始出现故障。此外,仅仅重启 SQL 服务并不能解决问题或提供暂时的性能提升。
服务器规格为:Windows Server 2003,企业版,SP2 4 X Intel Xeon 3.6GHz - 6GB 系统内存主动/主动集群 SQL Server 2005 SP2(9.0.3239)
答案1
您是否比较过两台服务器的执行计划?当结果变慢时,您是否尝试过在本地查询生产服务器?您是否检查过生产服务器上是否存在任何阻塞或资源等待?
答案2
您要返回多少行?
当您在服务器上返回结果时,可能会(但不太可能)导致服务器资源匮乏,因为需要在 SSMS 中显示所有结果。
在服务器上的 SSMS 中,转到“工具”->“选项”->“查询结果”->“SQL Server”->“结果到网格”。选中选项执行后丢弃结果
然后打开一个新的查询窗口,按 CTRL + D(以确保结果输出到网格)并再次运行查询。它仍然需要 45 分钟吗?
答案3
您可以转到远程服务器属性,然后选择“连接”节点吗?“默认连接选项:”是否已勾选?
答案4
可能需要对查询中的表运行 UPDATE STATISTICS