設計使用聯合的資料庫伺服器的應用程式

可更新的分散式資料分割檢視,支援 SQL Server 2005 伺服器的群組合作處理最大的、多層網站的資料庫工作負載。每台伺服器均可獨立管理,但同時每台伺服器上的 SQL Server 2005 執行個體,也可使用分散式資料分割檢視來分擔工作。一同分擔工作的自發伺服器群組稱為聯合。

您可藉著在每台伺服器上建立資料庫,然後分割資料庫的資料表,藉此建立聯盟資料庫伺服器。每台成員伺服器內的每個原始資料表將分割成成員資料表。每個成員資料表將擁有原始資料表的資料列子集合;原始資料表將在成員資料表上水平地分割。在設計聯盟資料庫系統時,請先分割所有的資料表,使所有相關的資料都位於相同的成員伺服器上。

分割一組聯合資料庫伺服器內之資料表的其中的一項結果為:一組資料路由規則。應用程式可根據資料路由規則,來比對它從使用者要求中所推論出來的資料片段。如此一來,它就可以判斷哪一個成員伺服器具有 SQL 陳述式所需要的大部分資料,應用程式必須產生這些 SQL 陳述式才能滿足使用者要求。如需詳細資訊,請參閱<設計聯盟資料庫伺服器>。

在多層架構中,會在下列各層實作系統:

  • 使用者服務層。 這是一組專門用於管理應用程式使用者介面的精簡型用戶端。使用者服務層將呼叫下一層來執行支援使用者要求所需的商業函數。

  • 商業服務層。 一組用來封裝組織之商業邏輯的 COM+ 元件。商業服務層會使用下一層來處理需要執行的任何永久資料儲存區。

  • **資料服務層.**一組可將資料儲存於永久媒體內的元件,例如 SQL Server 資料庫。這也稱作保存資料。

商業服務層是設計成一組執行於應用程式伺服器上的 COM+ 元件。這可讓 Microsoft Windows「網路負載平衡」將使用者的要求平均分散於商業層。由於任何的使用者要求都可以在任何應用程式伺服器上處理,因此商業元件必須擁有一些機制,來將它們所產生的 SQL 陳述式路由至適當的成員伺服器。商業元件必須可將從用戶端接收到的一些資訊來與資料路由規則進行比對,以決定哪個成員伺服器應該處理此要求。

在商業服務層中實作資料路由的彈性機制,是將路由規則儲存於永續性存放區內,例如 SQL Server 2005 或 Windows Active Directory,然後讓商業元件在執行階段擷取它們。您可撰寫 COM+ 元件來將索引鍵與路由規則進行比對,以決定哪個成員伺服器能夠最有效率地處理查詢。接著,此 COM+ 路由元件可由商業服務層內,需要存取分割資料的任何其他 COM+ 元件所呼叫。例如,在存取以客戶識別碼分割之客戶資料的系統內,您可以執行下列動作:

  • 建立一個路由規則資料表,裡面記錄了哪個索引鍵維護於每個成員伺服器內。

  • 建立一個資料路由商業元件,它以單一索引鍵值或某個索引鍵值範圍的開始與結束索引鍵,做為其輸入。COM+ 元件將讀取路由規則資料表,並將輸入索引鍵或索引鍵範圍與每個成員伺服器所記錄的索引鍵範圍互相比較,然後將擁有最佳比對結果的成員伺服器名稱傳給呼叫的元件或應用程式。

  • 撰寫一般的商業服務層元件或應用程式,以便每次在執行參考到資料分割檢視的 SQL 陳述式時,都呼叫資料路由元件。商業元件將使用資料路由元件所傳回的伺服器名稱來選取資料庫連接,以便在上面執行 SQL 陳述式。

若資料的分割方式變更了,此方法並不需要您變更應用程式碼。資料路由規則可於應用程式執行時變更。

請參閱

概念