我正在使用此命令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
答案 0 :(得分:1)
我想知道是什么导致SQL Server额外的90毫秒延迟。可以吗?
可能是一次性连接的东西。
1)建立TCP / IP会话
2)协商连接协议加密
3)登录并创建会话
尝试更高的-Count
建立连接和会话需要一些时间,并且不应真正算作“网络延迟”,因为客户端会保持打开状态并重用连接。
答案 1 :(得分:1)
产品说明指出:“然后它将输出整个连接和命令花费了多长时间,以及仅执行命令花费了多长时间。”此外,它表示将执行该命令三次。该工具将需要一些时间来验证与SQL Server的连接。因此,对我来说似乎很合理。