介绍
为达到最大型网站所需的高性能级别,多层系统一般在多个服务器之间平衡每一层的处理负荷。SQL Server 通过对数据库中的数据进行水平分区,在一组服务器之间分摊数据库处理负荷。这些服务器独立管理,但协作处理应用程序的数据库请求;这样一组协作服务器称为“联合体”。
只有在应用程序将每个 SQL 语句发送到包含该语句所需的大部分数据的成员服务器时,联合数据库层才能达到非常高的性能级别。这称为使用语句所需的数据来配置 SQL 语句。使用所需的数据来配置 SQL 语句不是联合服务器所特有的要求。群集系统也有此要求。
虽然服务器联合体与单个数据库服务器对应用程序来说是一样的,但在实现数据库服务层的方式上存在内部差异,如下表所示。
单个服务器层 |
联合服务器层 |
---|---|
生产服务器上有一个 SQL Server 实例。 |
每个成员服务器上有一个 SQL Server 实例。 |
生产数据存储在一个数据库中。 |
每个成员服务器都有一个成员数据库。数据分布在成员数据库之间。 |
一般每个表都是一个实体。 |
原始数据库中的表被水平分区到成员表。每个成员数据库有一个成员表,而且使用分布式分区视图使每个成员服务器上看起来似乎都有原始表的完整副本。 |
所有连接都连接到单个服务器,而所有 SQL 语句都由 SQL Server 的同一实例进行处理。 |
应用程序层必须能够将 SQL 语句配置到包含语句所引用的大部分数据的成员服 |