2013-04-22 48 views
1

我有一個日誌表,我打算從我的事務數據庫導入到我的報告數據庫。是SSIS包性能增強

表中的各列如下所示:

Id,Varchar1 , Varchar2, Time1, Time2 

XML結構被存儲在Varchar1 & VARCHAR2

我使用的SSIS包並用OLEDB源和目的地的數據流的任務。

表中有近600000條記錄,並且需要很長時間才能轉移。

,我在我的OLEDB源到目前爲止已經試過的查詢是:

1)select Id, XML1, XML2, Time1, Time2 where Time > 'XXXX' and Time2 < 'XXXX'

轉換VARCHAR到xml的 2)

select Id, CONVERT(XML,CONVERT(NVARCHAR(max),Varchar1, 0)), CONVERT(XML,CONVERT(NVARCHAR(max),Varchar2, 0)) 
, Time1, Time2 where Time > 'XXXX' and Time2 < 'XXXX' 

無論是查詢帶我一個非常長時間。

有沒有人有更好的解決方案/方法來實現我的任務?

回答

1

您可以確定它是從源數據庫中檢索數據還是將數據寫入導致延遲的目標數據庫?

如果您在目標表上有觸發器或索引,那可能是延遲的一部分。您可能想要在導入過程中禁用它們。

這是一次性轉移還是您將執行類似數量的記錄的重複轉移?

+0

嗨安謝謝!將會有多次轉賬,每月轉賬一次。目標表上還沒有觸發器或索引。你已經提出了一個虛擬點來確定源或目標是否導致了dealy。我想知道如何找到這些信息? – CodeNinja 2013-04-22 20:25:59

+0

您可以嘗試在SSMS中運行查詢,並查看返回600K行需要多長時間。雖然它不會成爲傳輸條件的完美複製品,但它將具有隔離源查詢的效果。 – 2013-04-22 20:29:33

+0

您可能還想確保在數據服務器上有足夠的磁盤空間。它必須適應的空間越小,速度越慢。 – 2013-04-22 20:30:34