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

时间:2016-01-04 13:38:28

标签: c# sql performance alwayson

美好的一天,

关于从可用性组的只读实例中读取,我遇到了与性能相关的问题。

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

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

方法2:直接连接到只读实例。

我想知道如果你经常查询数据库(每分钟左右)或者它没有任何区别,那么哪些服务器对服务器的负担就会减少。

1 个答案:

答案 0 :(得分:3)

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

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