再会,
关于从可用性组的只读实例中读取,我有一个与性能相关的问题。
据我了解(对不起,我对 Always On(AO) 不是很了解),您可以通过两种方式连接到只读实例:
方法 1:通过将应用程序意图指定为只读,直接连接到已正确设置只读路由的 AO 可用性组。
方法二:直接连接只读实例。
我想知道如果您不断地查询数据库(每分钟左右)或者它是否没有任何区别,那么其中哪些对服务器的负担会更少。
再会,
关于从可用性组的只读实例中读取,我有一个与性能相关的问题。
据我了解(对不起,我对 Always On(AO) 不是很了解),您可以通过两种方式连接到只读实例:
方法 1:通过将应用程序意图指定为只读,直接连接到已正确设置只读路由的 AO 可用性组。
方法二:直接连接只读实例。
我想知道如果您不断地查询数据库(每分钟左右)或者它是否没有任何区别,那么其中哪些对服务器的负担会更少。
两种方法之间的差异微不足道,尽管直接连接可能会稍微快一些,因为在连接到可用性组时必须执行一些额外的逻辑,例如查找只读路由。但是,最佳实践是连接到 AO 可用性组,因为它抽象了实现细节。如果有多个只读副本,它可以实现负载平衡,并且便于维护,因为 DBA 可以更改只读路由而无需更新任何连接字符串。
关于您的第二条评论,根据MSDN,当连接到可用性组时,可用性组的主数据库会处理传入的只读路由请求,并尝试查找连接到主副本的在线只读副本,并且配置为只读路由。客户端从主副本服务器接收回连接信息并连接到识别的只读副本。简而言之,在重新路由后,您将连接到辅助服务器,因此在使用只读应用程序意图时连接到可用性组没有区别,因为您最终会获得相同的连接。