2015-06-27 524 views
3

我是相當新的創建SSIS包。我有以下SQL Server 2008表,名爲BanqueDetailHistoryRef,包含10,922,583行。爲什麼我的SSIS包需要很長時間才能執行?

我想提取在特定日期(或日期)上插入的行並將它們插入到另一臺服務器上的表上。我試圖通過SSIS該圖來實現這一目標看起來是這樣的:

OLEDB Source (the table with the 10Million+ records) --> Lookup --> OLEDB Destination

在查找我已設置: enter image description here enter image description here enter image description here

現在,查詢(在指定的查找轉換):

SELECT * FROM BanqueDetailHistoryRef WHERE ValueDate ='2014-01-06';

花費大約1秒來運行SQL Server Management Studio,但所描述的SSIS包運行時間很長(如一小時)。

爲什麼造成這種情況?這是達到我想要的結果的正確方法嗎?

+0

你是否需要'BanqueDetailHistoryRef'中的每一列? – billinkc

+0

是的,我需要所有的專欄。 – Multitut

回答

2

你沒有顯示你的OLEDB Source組件是如何設置的,但看着表名我猜你會加載OLEDB源中的整個1000萬行,然後使用Lookup過濾掉只有那些你需要。這是不必要的緩慢。

您可以完全移除Lookup並使用查找中的相同查詢過濾OLEDB源中的行。

相關問題