2012-09-12 86 views
0

我有SQL Server中的SQL命令任務,每秒只更新20行,但我需要更新超過200,000行,這需要花費時間。當我使用SCD(類型2)時,它既不插入也不更新任何記錄。 (甚至沒有給出任何錯誤)如何提高更新ssis的速度

某些批次的行正在被轉移,SQL命令任務正在變成黃色..儘管它正在更新列但非常慢(每秒20行)。

如何提高更新速度?

回答

3

請勿使用SQL任務。它執行單例操作,因此您可以期望針對目標數據庫發出200,000條更新語句。如果您創建存儲過程以避免查詢編譯過程中的幾個步驟,但您必須測試並查看,則可能會獲得一些微不足道的提升。

獲得性能提升的真正方法是創建登臺表並將要更新的所有行轉儲到該表中。數據流完成後,接上執行SQL任務以執行從登臺表到目標表的批量更新。

讓我知道,如果一個畫面會做出更加清晰

+0

這是一個非常好的建議。 +1。但是我的數據庫中有很多表,因此我無法創建suppliment/intermediate更新表。有可能我可以將該輸出存儲在記錄集中,並可以使用記錄集作爲源? – Zerotoinfinity

0

如果使用SQL 2008以上嘗試MERGE語句(在執行SQL任務),它工作在基於集合的方式,而不是RBAR(行通過行)的SQL命令