Sql server 使用始终在线的高可用性组分散工作负载

Sql server 使用始终在线的高可用性组分散工作负载,sql-server,scalability,alwayson,Sql Server,Scalability,Alwayson,我想知道是否可以拆分一个非常大的查询,以便在辅助只读服务器上完成部分查询,或者该功能是否只允许我在辅助服务器上运行单独的查询或脚本。我还想知道是否有人为此目的使用AlwaysOn高可用性组,它对您有何帮助?群集和高可用性用于最小化停机时间,而不是提供负载平衡。一段引自《圣经》的话 “群集也不是负载平衡的解决方案。负载 平衡是指多个服务器作为一个服务器,将负载分散到多个服务器上 多台服务器同时运行。许多DBA,尤其是那些工作的DBA 对于大型商业网站,可能会认为集群提供了负载 群集节点之间的平衡。

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

群集和高可用性用于最小化停机时间,而不是提供负载平衡。一段引自《圣经》的话

“群集也不是负载平衡的解决方案。负载 平衡是指多个服务器作为一个服务器,将负载分散到多个服务器上 多台服务器同时运行。许多DBA,尤其是那些工作的DBA 对于大型商业网站,可能会认为集群提供了负载 群集节点之间的平衡。情况并非如此;群集 仅帮助提高SQL Server实例的正常运行时间。如果需要加载 平衡,那么你必须寻找一个不同的解决方案。一种可能性 可能是对等事务复制。“


您可以使用第二台报表服务器执行昂贵的查询。为此,我们使用事务复制将所有适用的数据移动到第二台服务器,该服务器仅用于报告。但是,您必须指定要查询的服务器,因此SQL无法根据工作负载决定查询哪个服务器。

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

您必须使用完全独立的连接(具有不同的连接字符串属性),以便在主读/写副本上运行一些查询,而在辅助只读副本上运行其他查询。对于SQL Server 2012,SQL Server本机客户端支持的连接字符串格式中添加了一个
applicationcontent
属性。在此属性中,您可以指定连接的目的是用于
ReadWrite
还是
ReadOnly
数据访问。有关详细信息,请参阅BOL上的文章

但是,为了让服务器知道如何处理此连接字符串属性,必须首先配置只读路由。此配置是可用性组侦听器正确引导到主读/写副本或辅助只读副本的连接所必需的。详细信息见BOL文章中关于如何使用的内容