横向扩展SQL Server应用程序:提高工作负载的选项

日期:2017-3-24作者:Brien Posey

SQL Server   Microsoft   

【TechTarget中国原创】

SQL Server管理员面临的最大挑战之一就是扩展数据库以适应更为繁重的数据处理工作负载。然而事情越发复杂的是,虽然Microsoft提供了许多不同的SQL Server可扩展性选项,但它们并不都适合于每种情况。

首先,存在一个基本问题,即是否要对SQL Server体系结构进行纵向或横向扩展。前者涉及到将数据库迁移至具有更多处理器,存储器和数据存储的更大的服务器; 而后者将SQL Server应用程序扩展到多个服务器,如此一来扩展了数据处理工作负载,并提供了潜在的数据冗余和可用性优势。

在这种情况下,我们将重点介绍横向扩展SQL Server的各种方法。在决定使用哪种可扩展性方法之前,数据库管理员必须考虑诸如数据更新频率,数据是否可以在不同数据库之间进行分区以及修改在SQL Server上运行的应用程序的能力等因素。借助手中的答案,他们可以创建满足其特定需求的横向扩展计划。

为了有助于找到这些答案,这里有一些常用的SQL Server横向扩展方法的基本细节,它们都是从Microsoft发布的技术信息凝聚而来的。

可扩展共享数据库。数据库不必在物理上位于数据库服务器。通过将其放置在存储区域网络(SAN)上,可以通过在不同服务器上运行的多个SQL Server实例同时访问数据。实质上,连接到SAN的每个实例都使用的是相同的数据库副本。

这种扩展方法通常可以在不对SQL Server应用程序进行任何修改的情况下使用。然而,其一个很大的缺点是它只适用于具有静态数据的工作负载。可扩展共享数据库在涉及复杂查询的读密集型应用程序(例如数据仓库)中工作得非常出色。

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

评论
查看更多评论

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

作者>更多

Brien Posey
Brien Posey

微软最有价值专家(MVP),具有二十多年的IT经验,前后获得七次微软MVP,重点专注SharePoint管理,发表过上千篇文章,并出版十多本IT书籍。

SQL Server可用性与扩展>更多

相关推荐

  • 五大技巧构建首个SQL Server容器

    容器的世界庞大而复杂,使用者可能会感到困扰,这里我们将列出一些示例,以便引导您顺利完成SQL Server容器的创建和管理。

  • SQL Server 机器学习在运营数据领域“火力全开”

    当今最热门的趋势之一,就是使用人工智能和机器学习技术来增强传统业务应用。可能下一代数据中心应用平台将会支持的实时联机事务处理分析功能。

  • 从Linux上的SQL Server看微软未来计划

    在微软的大部分历史中,Windows一直是其旗舰产品,该公司已经试图通过开发几乎专门为Windows开发的软件来防止客户采用竞争的操作系统。

  • TT百科:存储过程

    存储的过程可以访问或修改数据库中的数据,但并不绑定到特定的数据库或对象,这提供了许多优点。

技术手册>更多

  • OCA Oracle 11g:巧用SQL子查询

    本技术专题主要介绍了如何定义子查询、阐述了子查询的类型以及如何在SQL中使用子查询、编写单行或多行子查询等。

  • 2009年度十大SQL Server技巧文章

    在向2009年告别之际,我们来回顾一下过去的一年中最受欢迎的SQL Server技巧,包括了OPENROWSET、FILESTREAM等函数的用法、密码工具介绍以及DBA日常工作建议等内容。

  • Oracle软件许可证审计指南

    做好Oracle审计的准备已经成为企业迈向成功的关键一步。本次技术手册,就将为您解读Oracle软件许可审计的来龙去脉。

  • SQL Server存储域网络技巧集锦

    使用存储区域网络(SAN)将改善你SQL Server环境的性能。然而SAN管理要求更多的精力,SQL DBA从SAN设置到维护都要负责。

TechTarget

最新资源
  • 安全
  • 存储
  • CIO
  • SOA
  • 云计算
  • 商务智能
【TechTarget中国原创】

SQL Server管理员面临的最大挑战之一就是扩展数据库以适应更为繁重的数据处理工作负载。然而事情越发复杂的是,虽然Microsoft提供了许多不同的SQL Server可扩展性选项,但它们并不都适合于每种情况。

首先,存在一个基本问题,即是否要对SQL Server体系结构进行纵向或横向扩展。前者涉及到将数据库迁移至具有更多处理器,存储器和数据存储的更大的服务器; 而后者将SQL Server应用程序扩展到多个服务器,如此一来扩展了数据处理工作负载,并提供了潜在的数据冗余和可用性优势。

在这种情况下,我们将重点介绍横向扩展SQL Server的各种方法。在决定使用哪种可扩展性方法之前,数据库管理员必须考虑诸如数据更新频率,数据是否可以在不同数据库之间进行分区以及修改在SQL Server上运行的应用程序的能力等因素。借助手中的答案,他们可以创建满足其特定需求的横向扩展计划。

为了有助于找到这些答案,这里有一些常用的SQL Server横向扩展方法的基本细节,它们都是从Microsoft发布的技术信息凝聚而来的。

可扩展共享数据库。数据库不必在物理上位于数据库服务器。通过将其放置在存储区域网络(SAN)上,可以通过在不同服务器上运行的多个SQL Server实例同时访问数据。实质上,连接到SAN的每个实例都使用的是相同的数据库副本。

这种扩展方法通常可以在不对SQL Server应用程序进行任何修改的情况下使用。然而,其一个很大的缺点是它只适用于具有静态数据的工作负载。可扩展共享数据库在涉及复杂查询的读密集型应用程序(例如数据仓库)中工作得非常出色。

但是,可扩展共享数据库不适合具有读/写操作混合的应用程序。在将数据写入SQL Server数据库时,会在SQL Server数据库上加锁。如果数据必须写入共享数据库,除了一个SQL Server实例外,所有其他SQL Server实例将立即从其中分离,直到写操作完成。因此,写操作会以非常显着的方式对数据库性能产生负面影响。

分布式分区视图。与可扩展共享数据库不同,此项用于扩展SQL Server工作负载的技术适用于频繁更新的数据,因此非常适合联机事务处理(OLTP)应用程序。其潜在的缺点是数据必须能够被分区。数据库应用程序也可能需要修改以跨所有分区进行同步处理操作。

分布式分区视图方法背后的概念很简单:大型数据库中的数据被分解成几个较小的分布式数据库。例如,包含发票的数据库可能按年份划分。2016年的发票可以放入一个数据库,而2017年的发票将进入另一个数据库。然后可以对包含相关数据的数据库运行更新和查询。

数据依赖型路由。这实质上是为大容量OLTP应用程序设计的分布式分区视图的变体。数据库类似地分解为一系列较小的数据库。而其区别在于将查询路由至正确的数据库的过程是如何加以管理的。有了分布式分区视图,SQL Server本身知道数据分区结构,并确定去哪里访问所请求的数据。在数据依赖型路由的情况下,SQL Server应用程序或中间件服务会确定必要数据的驻留位置。

链接服务器。SQL Server可以访问远程数据库,就如同它们是在本地一样。 因此,可以对软件进行配置以将横向扩展的数据库集合视为单个大型数据库。 当现有的SQL Server应用程序无法轻易更改为支持另一种横向扩展方法时,链接服务器便提供了一种可行的替代方案。

但是,因为SQL Server连接到一系列独立的数据库,所以它们之间不能有正式的耦合。除了SQL Server中的一些限制之外,例如本地表和远程表之间缺乏引用完整性,则在访问远程数据库时就会涉及大量的处理开销。涉及到链接服务器的SQL Server体系结构必须以最小化访问远程数据的方式进行设计,特别是通过本地表和远程表之间的连接。

对等复制。用于横向扩展SQL Server应用程序的另一种机制是在不同服务器之间复制数据。对等复制基本上与可扩展共享数据库方法相反。它不是使多个数据库服务器共享数据库的单个副本,而是每个服务器都包含自己的副本。当发生写操作时,更改将复制到所有副本。

对等复制可以处理中等数量的数据库写入,但它最适合于相对静态的数据。由于复制过程涉及延迟,因此它也不适合与对时间非常敏感的数据一起使用。然而,对于处理更多读取而不是写入的数据库,这是一个很好的通用可扩展性选项。