2011-11-04 53 views
1

我有一個數據庫D1中的表T1和數據庫D2中的表T2。從T2我只需要那些主鍵在T1中列出的記錄。 目前我知道的唯一方法是使用合併連接(Inner Join)。由於T2包含的記錄多於T1,合併連接將消除T2中不存在於T1中的所有記錄。由於這種方法很慢,是否有其他方法來完成這項任務?ssis - 合併連接替代

感謝,
伊利亞·

回答

2

是否有一個原因,Lookup Transformation將無法​​正常工作?

+0

嗯......我一定會試試這個。謝謝! –

+0

由於這聽起來像查找表會相當大,您將需要調查高級選項並將查找類型從完整更改爲部分或不更改緩存。否則,該軟件包需要很長時間才能啓動,因爲它本地緩存該數據。 2005年還是2008年? – billinkc

0

或者你可以讓你的數據流源是一個連接查詢,而不是一個表。

+0

對不起,我不明白你的解釋,你能更具體嗎?請注意,我有兩個不同的數據源,並加入這兩個數據庫中的兩個表。 –

1

D1和D2都在同一個SQL Server實例上嗎?如果是這樣,查詢是十分容易寫:

SELECT t2.* 
FROM D2.schema2.T2 t2 
JOIN D1.schema1.T1 t1 ON t1.id = t2.id 

(顯然,你需要替換在加入主鍵列(S)的真實姓名,以及該模式是T1和T2直播。)