2009-10-22 57 views
0

我在對數據倉庫的一個SSIS解決方案時提取相應的應用密鑰的代理鍵,我使用查找SSIS的任務,但這項任務的問題是它緩存完整的查詢表在其記憶中。而我的查詢表大小很大,即2000萬條記錄。所以,如果u可以建議查找任務替代的查找任務在SSIS

回答

0

做了留下你的查詢數據JOIN當你把數據導入SSIS包,然後評價你需要什麼樣某些方面或替代方案。

如果查找表是不同的來源,那麼你可以做一個LEFT JOIN在SSIS,但畢竟是要緩存行也是如此。我認爲JOIN可能比Lookup稍快。

+0

但問題是查找表是在不同的來源和緩存表運行時間爲這樣的大表dosent似乎是收費選項 – paranjai 2009-10-22 13:36:53

0

您是否需要掃描整個表格?即您可以指定查找作爲餐桌上的數據庫查看,甚至將其指定爲一個SQL查詢的結果(一個SQL查詢選項的使用效果)

1

我不認爲一臺20萬條記錄過於龐大的擡頭。您可以執行一些篩選,並通過在查找中僅選擇所需的列,可以優化它以使用少量內存。

例如,如果您有一個int類型的鍵列和一個查找大小爲10的varchar列,則記錄將需要4 + 10字節,並且2000萬變爲20Mx(4 + 10)〜= 280MB,這不能是被認爲太高。

不過,如果你想減少內存使用,你將不得不使用連接。

0

確保你只挑你在查表需要,做一些並不需要的不是高速緩存列列。請花些時間看看MS "Project "Real"它在高數據量應用程序中使用SSIS並討論最佳實踐。