0

我想知道是否可以拆分一个非常大的查询以在辅助只读服务器上完成部分查询,或者如果此功能只允许我在辅助服务器上运行单独的查询或脚本。我还想知道是否有人为此目的使用 AlwaysOn 高可用性组,它对您有什么作用?

4

2 回答 2

0

集群和高可用性用于最大限度地减少停机时间,而不是提供负载平衡。这篇文章的引述说

“集群也不是负载均衡的解决方案。负载均衡是指多台服务器作为一个服务器,同时将负载分散到多台服务器上。许多 DBA,尤其是为大型商业网站工作的 DBA,可能认为集群在服务器之间提供负载均衡。 “

您可以使用第二个报告服务器来执行昂贵的查询。我们通过使用事务复制将所有适用的数据移动到仅用于报告的第二台服务器来做到这一点。但是,您必须指定要查询的服务器,因此它不是一个简单的解决方案,SQL 会根据工作负载决定要查询的服务器。

于 2014-06-27T14:24:51.970 回答
0

可用性组允许您将只读查询卸载到辅助只读副本,但此卸载是在连接级别完成的。因此,您将无法仅在只读副本上运行部分查询。此外,您不能将来自同一连接的不同查询路由到不同的副本(服务器)。

您必须使用完全独立的连接(具有不同的连接字符串属性)以使某些查询在主要读/写副本上运行,而其他查询在辅助只读副本上运行。在 SQL Server 2012 中,ApplicationIntent向 SQL Server Native Client 支持的连接字符串格式添加了一个属性。在此属性中,您可以指定连接的意图是用于访问ReadWrite还是ReadOnly数据访问。详细信息在SQL Server Native Client Support for High Availability, Disaster Recovery的 BOL 文章中。

但是,为了让服务器知道如何处理这个连接字符串属性,您必须首先配置只读路由。可用性组侦听器需要此配置才能正确地将连接定向到主要读/写副本或辅助只读副本。有关如何为可用性组配置只读路由的 BOL 文章中有详细信息。

于 2015-12-28T18:05:18.297 回答