介紹
為達到最大型網站所需的高性能級别,多層系統一般在多個伺服器之間平衡每一層的處理負荷。SQL Server 通過對資料庫中的資料進行水準分區,在一組伺服器之間分攤資料庫處理負荷。這些伺服器獨立管理,但協作處理應用程式的資料庫請求;這樣一組協作伺服器稱為“聯合體”。
隻有在應用程式将每個 SQL 語句發送到包含該語句所需的大部分資料的成員伺服器時,聯合資料庫層才能達到非常高的性能級别。這稱為使用語句所需的資料來配置 SQL 語句。使用所需的資料來配置 SQL 語句不是聯合伺服器所特有的要求。群集系統也有此要求。
雖然伺服器聯合體與單個資料庫伺服器對應用程式來說是一樣的,但在實作資料庫服務層的方式上存在内部差異,如下表所示。
單個伺服器層
聯合伺服器層
生産伺服器上有一個 SQL Server 執行個體。
每個成員伺服器上有一個 SQL Server 執行個體。
生産資料存儲在一個資料庫中。
每個成員伺服器都有一個成員資料庫。資料分布在成員資料庫之間。
一般每個表都是一個實體。
原始資料庫中的表被水準分區到成員表。每個成員資料庫有一個成員表,而且使用分布式分區視圖使每個成員伺服器上看起來似乎都有原始表的完整副本。
所有連接配接都連接配接到單個伺服器,而所有 SQL 語句都由 SQL Server 的同一執行個體進行處理。
應用程式層必須能夠将 SQL 語句配置到包含語句所引用的大部分資料的成員服