2012-11-30 21 views
0

在我的包中插入數據後將數據插入表中。我通過使用SQL TASK更新查詢填充了Checksum值,它花費了更多時間。如何解決這個與第三方組件。如何在ssis中插入數據時執行校驗和功能?

請幫助我。

以下查詢填充checksumID。在這張表中,更多的1000萬條記錄基於Import_Id。

更新通訊設置ChecksumId = CHECKSUM(address1,address2,state,zip,city,....) 其中import_id =?

此過程只需要更多時間,最少1或2小時。

+0

在我的包中插入數據後將數據插入表中。我通過使用SQL TASK更新查詢填充了Checksum值,它花費了更多時間。如何解決這個與第三方組件。 請幫助我。 – Dinesh

+0

你剛剛貼上你的原始帖子作爲我的問題的評論,這並沒有幫助我。 –

+0

我已經添加了幾個點,請發現它 – Dinesh

回答

1

一種可能性是編寫自己的校驗功能,並將其應用到每一行使用加載數據的數據流中的腳本轉換的傳入數據。從執行時間角度來看,這可能是最快的;但是,如果這個值與T-SQL CHECKSUM相匹配是非常重要的,那麼您將需要進行大量的逆向工程。

或者,代替直接加載您的目標表,創建一個工作表具有相同的佈局作爲目標表,加上計算列定義爲所需的列的CHECKSUM:

CREATE TABLE WRK_Communication 
(
    address1 VARCHAR(50), 
    address2 VARCHAR(50), 
    -- other columns 
    ChecksumId CHECKSUM(address1,address2,state,zip,city,....)  
) 

在您的SSIS包,首先使用執行SQL任務截斷此工作表,然後使用數據流加載它,然後使用另一個執行SQL任務將工作表的內容插入到目標表中。

+0

謝謝埃德蒙。由於表中有大量的數據,我無法用校驗和創建工作表。所以,有沒有其他辦法? – Dinesh