No BOL eu li o seguinte sobre MultiSubnetFailover
=True:
A opção de conexão MultiSubnetFailover deve ser definida como True mesmo se o grupo de disponibilidade abranger apenas uma única sub -rede . Isso permite pré-configurar novos clientes para dar suporte à expansão futura de sub-redes sem a necessidade de futuras alterações na cadeia de conexão do cliente e também otimizar o desempenho de failover para failovers de sub-rede única.
Pelo que entendi o funcionamento do MultiSubnetFailover
, com esta opção definida o driver cliente configura um socket para cada endereço IP associado ao listener. Todos eles são verificados em paralelo para agilizar o processo de encontrar o IP online e o primeiro que responder será o utilizado para a conexão. Aqui eu vejo um ganho de desempenho.
Mas onde está o ganho de desempenho em uma única sub-rede? Existe apenas o IP associado ao ouvinte.
Quando
MultiSubnetFailover=True
estiver definido, o SQL Server Native Client tentará novamente a conexão TCP de forma agressiva.Então em
em um cenário de várias sub-redes, ele tentará conexões em paralelo, que você já conhece.
em um único cenário de sub-rede, ele tentará agressivamente a conexão TCP mais rápido do que o intervalo de retransmissão TCP padrão do SO, portanto, seu tempo de reconexão após um failover de AG será aprimorado.