簡體   English   中英

集群數據庫服務器的數據檢索和聯接操作

[英]Data retrieval and Join operations with cluster db server

如果任何數據庫分布在多個服務器(例如Microsoft Sql Server)上,我們該如何進行聯接或篩選操作。 在我的情況下,如果假設:

  1. 單個表分布在多個服務器上,我們如何根據用戶輸入過濾行?
  2. 如果主表在一個數據庫服務器上,而事務表在另一數據庫服務器上,我們該如何進行聯接操作?

請讓我知道我們如何實現這一目標,並且在哪里可以獲取有關此目標的更多詳細信息?

我認為您對SQL群集感到困惑-它不允許您將表拆分到多個服務器上,而不是將不同的表放在同一台服務器上的不同數據庫中。 群集用於熱故障轉移和冗余。

但是,我想我知道您要問的是-如果要在不同的物理服務器之間拆分數據庫,最簡單的操作可能是擁有一個VIEW,將一個表統一在一個位置,然后您可以查詢並進行過濾。 如果您從統一視圖中選擇某些內容,SQL Server足夠聰明(只要有索引和統計信息即可做出決定)就可以將查詢發送到需要去的地方。

例如,假設您有兩個服務器-SERVER1和SERVER2都具有數據庫-DATABASE-每個服務器都有一個表-TABLE-其中有一半的數據(在兩台服務器之間,您每行都有)。 只需在某個地方(無論是服務器,還是整個其他地方)創建一個看起來像這樣的視圖,然后為SERVER1和SERVER2添加鏈接服務器,使SQL Server可以從遠程位置獲取數據:

CREATE VIEW SomeView
    AS
SELECT *
  FROM SERVER1.DATABASE..TABLE
 UNION
   ALL
SELECT *
  FROM SERVER2.DATABASE..TABLE

這樣,您就可以在一個地方進行查詢,並且始終可以從其所在的任何服務器上獲取數據,而不必自己查詢每個服務器。 即使您不想拆分單個表,也可以執行此操作-只需為要移動的每個表創建一個視圖,然后讓該視圖檢查表實際位於哪個服務器上。

如果我錯過了您的實際問題,請發表評論和澄清,我們很樂意補充一些細節。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM