连接到 Always On 可用性组的只读实例

Connecting to read only instance of Always On availability group

美好的一天,

我有一个关于从可用性组的只读实例读取的性能相关问题。

据我了解(抱歉,我对 Always On(AO) 不是很了解)您可以通过两种方式连接到只读实例:

方法 1:直接连接到 AO 可用性组,该组具有正确的只读路由设置,通过将应用程序意图指定为只读。

方法二:直接连接只读实例

我想知道如果您不断查询数据库(大约每分钟一次),那么其中哪些对服务器的负担较小,或者它是否没有任何区别。

这两种方法之间的区别并不明显,尽管直接连接可能会稍微快一些,因为在连接到可用性组时必须执行一些额外的逻辑,例如查找只读路由。但是,最佳做法是连接到 AO 可用性组,因为它抽象了实现细节。如果有多个 read-only 副本,它允许负载平衡,并且它有助于维护,因为 DBA 可以更改 read-only 路由而无需更新任何连接字符串。

关于您的第二条评论,根据 MSDN,当连接到可用性组时,可用性组的主数据库会处理传入的 read-only 路由请求并尝试定位在线,read-only 加入主副本并配置为 read-only 路由的副本。客户端从主副本服务器接收反向连接信息并连接到已识别的 read-only 副本。所以简而言之,在重新路由之后,您会连接到辅助服务器,因此在使用只读应用程序意图时连接到可用性组没有区别,因为您最终会获得相同的连接。