当连接到我们的生产服务器(SQL Server 2008,功能非常强大的计算机)时,此SELECT语句将花费2秒,回吐所有字段(总共4 MB的数据)。
SELECT TOP (30000) *
FROM person
WITH(NOLOCK);
从同一网络上的任何其他框中(使用SQL身份验证或Windows身份验证进行连接),相同的查询需要1分钟8秒。
我正在用这个非常简单的语句进行测试,以说明它不是索引问题或与查询相关的问题。(目前,所有查询都存在性能问题...)
这些行是成块的,而不是一次全部。我立即得到第一行,然后等待1分钟以上,以使成批的行进入。
从远程框中运行查询时,这是查询的客户端统计信息:
Query Profile Statistics
Number of INSERT, DELETE and UPDATE statements 0
Rows affected by INSERT, DELETE, or UPDATE statements 0
Number of SELECT statements 2
Rows returned by SELECT statements 30001
Number of transactions 0
Network Statistics
Number of server roundtrips 3
TDS packets sent from client 3
TDS packets received from server 1216
Bytes sent from client 266
Bytes received from server 4019800
Time Statistics
Client processing time 72441 ms (72 seconds)
Total execution time 72441 ms
Wait time on server replies 0
我们可以看到“客户端处理时间”等于总执行时间。
有谁知道我可以采取哪些步骤来诊断为什么实际数据传输需要很长时间?
是否有一个SQL配置参数可以限制或限制计算机之间的数据传输速度?