2015-03-30 118 views
0

我需要在SSIS中創建一個任務,爲我帶來一些重複某些次數的記錄(例如,分配了多個特徵的標識符)。我諮詢的表格有數百萬條記錄,SSIS查找只返回一條記錄,即找到第一條匹配的記錄。其他人被丟棄。SSIS任務返回多個結果

合併加入不可行,因爲它可能需要幾小時。我無法過濾我希望的resutlados的結果。

我必須從Oracle中的錶帶上記錄和比較SQL Server標識符,讓符合條件的全部(全部)的記錄,而不是部分(只有一個)

的加入(內部連接)必須在兩個表之間,第一個有10行,第二個有8400萬行。結果應該被插入到一個完全爲空的表格中

+0

從概念上講,數據的主要來源將是SalesOrder表。那麼您需要根據SalesOrderId獲取所有相關的SalesOrderDetail行? – billinkc 2015-03-30 19:00:15

+0

準確。我必須從Oracle的表中提取記錄,並將標識符與SQL Server進行比較,並讓滿足條件的記錄全部(全部),而不是部分(僅限一個) – 2015-03-30 19:06:28

+0

您在兩個源表/疑問? – billinkc 2015-03-30 19:58:00

回答

0

對於數百萬行,我認爲你將無法用內存中的緩存來完成這項任務,這會更快。您可以嘗試使用完全緩存創建查找任務,並查看它是如何發生的 - 如果空間不足,我相信它會失敗。

如果它適合你的業務需求,可以使用臨時表和合並報表,它可以快許多倍,比使用合併聯接數據流任務:https://technet.microsoft.com/en-us/library/cc280522(v=sql.110).aspx

+0

但查找任務是一個同步組件。 1個輸入行= 1個輸出行。他們需要一個1:多的查找任務,這是挑戰 – billinkc 2015-03-30 19:57:26

+0

啊,我接受了這個:「滿足條件的全部(全部),而不是部分(只有一個)」,意味着他需要所有列匹配,而不僅僅是標識符列。但是也許他意味着他需要所有的記錄,就像你建議的那樣,在一對多關係中。 – TPhe 2015-03-30 20:20:04

+0

受影響的測試,如果有的話,您評論。謝謝! – 2015-03-30 20:55:36