2012-03-14 123 views
0

我在不同服務器上的兩個不同SQL Server數據庫中有兩個表。每個表具有相同的行數(每個〜65000),它們通過共同的ID列相關。我創建了一個從這兩個表中讀取和更新屬性的對象。來自兩個不同數據庫表的更新對象

我讀取第一個表中的所有項目,並創建我的對象的一個​​實例,然後更新它的屬性。然後我將它添加到列表中。完成後,我從第二個表中讀取以更新對象的剩餘屬性。

什麼是最好的方法來做到這一點?你有什麼建議嗎?此時我循環訪問我的列表,併爲列表中的每個對象從第二個服務器獲取數據。當然這是消耗時間(〜15分鐘)。

例如,是否可以在其中一臺服務器上創建臨時表?我消耗的時間在我的循環中。從這兩臺服務器上檢索數據所花費的時間對我來說是可以的。

+0

首先將兩個數據庫表填充到兩個System.Data.DataTable變量中,並使用Linq查詢使用您的id列來加入它們。然後,您可以查看記錄並避免調用每個記錄的第二個數據庫。 – Kaf 2012-03-14 19:01:34

+0

@Indikaf我已經先從服務器獲取數據,對不起,我的解釋中可能並不清楚。當我測量用於獲取SQL數據的時間時,我發現它對我來說確實沒問題。當我嘗試通過Linq在集合中找到我的對象以根據來自第二個服務器的數據表設置其屬性時,我不得不花費大部分時間。鏈接服務器方法似乎對我很方便。因爲我認爲我可以在我的SQL查詢中完成Linq所做的工作。 – Demir 2012-03-16 08:03:02

回答

0

最好的方法是使用sp_addlinkedserver將其中一臺服務器作爲鏈接服務器添加,然後您可以針對其中一臺服務器運行查詢(通過共同字段將兩個表連接在一起),並將所有內容集中在一起。

相關問題