是什么导致SQL Server网络延迟过长?

时间:2019-10-09 22:55:54

标签: sql-server

我正在使用此命令https://docs.dbatools.io/#Test-DbaNetworkLatency来测试SQL Server 2016的网络延迟。它给了我100毫秒的网络延迟结果(来自NetworkOnlyTotal的输出)。但是,如果我ping sql服务器实例,则只能得到11ms。我想知道是什么导致SQL Server额外的90毫秒延迟。是预期的吗?还是我应该看什么配置?

我尝试使用-Count参数,发现NetworkOnlyTotal的变化不会太大,有时甚至不会掉落。这个值是平均值吗?

请参见以下两个示例,一个示例是运行查询1次,而另一个示例是运行查询10次。有关NetworkOnlyTotal的结果对于10次查询甚至更好。从名称看,它看起来像是10个请求的总时间。但是为什么价值下降了?

Test-DbaNetworkLatency  -SqlCredential $credential -SqlInstance $instance -Count 1

output:
ExecutionCount     : 1
Total              : 141.55 ms
Average            : 141.55 ms
ExecuteOnlyTotal   : 69.13 ms
ExecuteOnlyAverage : 69.13 ms
NetworkOnlyTotal   : 72.42 ms
Test-DbaNetworkLatency -SqlCredential $credential -SqlInstance $instance -Count 10

output:
ExecutionCount     : 10
Total              : 180.33 ms
Average            : 18.03 ms
ExecuteOnlyTotal   : 127.38 ms
ExecuteOnlyAverage : 12.74 ms
NetworkOnlyTotal   : 52.95 ms

2 个答案:

答案 0 :(得分:1)

  

我想知道是什么导致SQL Server额外的90毫秒延迟。可以吗?

可能是一次性连接的东西。

1)建立TCP / IP会话

2)协商连接协议加密

3)登录并创建会话

尝试更高的-Count建立连接和会话需要一些时间,并且不应真正算作“网络延迟”,因为客户端会保持打开状态并重用连接。

答案 1 :(得分:1)

产品说明指出:“然后它将输出整个连接和命令花费了多长时间,以及仅执行命令花费了多长时间。”此外,它表示将执行该命令三次。该工具将需要一些时间来验证与SQL Server的连接。因此,对我来说似乎很合理。