在BOL上,我阅读了以下有关MultiSubnetFailover
=True 的内容:
即使可用性组仅跨越单个子网,MultiSubnetFailover连接选项也应设置为True。这使您可以预配置新客户端以支持未来的子网跨越,而无需更改未来的客户端连接字符串,还可以优化单个子网故障转移的故障转移性能。
据我了解 的工作原理MultiSubnetFailover
,设置此选项后,客户端驱动程序会为与侦听器关联的每个 IP 地址设置一个套接字。它们都被并行检查以加快查找在线 IP 的过程,第一个响应的 IP 将用于连接。在这里,我看到了性能提升。
但是单个子网的性能增益在哪里呢?只有 IP 与侦听器相关联。
MultiSubnetFailover=True
设置后,SQL Server Native Client 将主动重试 TCP 连接。所以在
在多子网场景中,它将尝试并行连接,您已经知道这一点。
在单个子网场景中,它会比操作系统默认的 TCP 重新传输间隔更快地积极重试 TCP 连接,因此您在 AG 故障转移后的重新连接时间将得到改善。