1
我按照此博客文章創建ssis包以便在2個表之間傳輸數據。 http://radacad.com/insert-update-and-delete-destination-table-with-ssis。SSIS合併連接來更新或刪除永久鎖定的行
- 插入行:不ISNULL(SOURCE_ID)和ISNULL(DEST_ID)
- 刪除行:ISNULL(SOURCE_ID),而不是ISNULL(DEST_ID)
- 更新行:SOURCE_ID = DEST_ID和source_row_version <> dest_row_version
它可以很好的記錄下來。但是,當檢測到更新和刪除行數很多時(一千或幾十萬行)。它運行速度很慢,目標表被鎖定,工作從未完成。另一件事,這種方法逐行刪除和更新。
請您幫我克服這種情況下的表鎖。有沒有什麼辦法可以讓我們更新或刪除一批行而不是逐行進行?
同意。不要使用這種模式。兩個問題。首先,OLE DB命令每行進行一次數據庫往返。非常慢。其次,我們有兩個OLE DB命令雙向轉換同一張表。 Lock Central。如Jo建議的那樣,用OLE DB目標替換這些OLE DB命令。綁定這些目標以刪除和更新登臺表。然後,在控制流上,在此數據流之後,添加兩個EXECUTE SQL命令。一個是UPDATE FROM階段,另一個是DELETE FROM階段。這會更快。還在數據流之前添加TRUNCATE階段表命令以保持舞臺精益。祝你好運! –