瞭解聯盟資料庫伺服器

為達到大型網站所要求的高度效能,多層式系統通常會在多台伺服器之間平衡各階層的處理負擔。SQL Server 會平行分割資料庫中的資料,在一組伺服器之間平分資料庫的處理負擔。這些伺服器的管理是獨立的,但是會共同處理來自應用程式的資料庫需求;如此一群共同合作的伺服器就稱為聯盟。

唯有當應用程式將每個 SQL 陳述式傳送至具有該陳述式要求之大部份資料的成員伺服器時,聯盟資料庫階層才可以達到非常高的效能。這就是所謂的將 SQL 陳述式與陳述式所要求的資料組合在一起。並不是只有聯盟伺服器會要求將 SQL 陳述式與所要求的資料組合在一起。在叢集系統中也有相同的要求。

雖然伺服器聯盟對應用程式表現的就像是單一資料庫伺服器,但資料庫服務層的實作方式仍有內部的差異,如下表所示。

單一伺服器層

聯盟伺服器層

生產伺服器上有一個 SQL Server 的執行個體。

每台成員伺服器上都有一個 SQL Server 的執行個體。

生產資料儲存於單一資料庫中。

每個成員伺服器都具有成員資料庫。資料在成員資料庫中散佈。

每個資料表都是典型的單一實體。

從原始資料庫來的資料表會水平地分散到成員資料表。每個成員資料庫都具有個別的成員資料表,並且用分散式資料分割檢視來顯示資料表,就如同每個成員伺服器上都有原始資料表的完整副本一般。

所有的連接都是連接到單一伺服器,且所有的 SQL 陳述式都是由相同的 SQL Server 執行個體來處理。

應用程式層必須能夠組合成員伺服器 (包含 SQL 陳述式所參考的大部份資料) 上的 SQL 陳述式。