如果源表包含DateTimeCreated和DateTimeUpdated列,那麼更新目標表的最有效方法是什麼?在源表中給出DateCreated和DateUpdated列的更新目標表
-1
A
回答
1
我想保持源目標在同步避免 截斷。我正在尋找一個在這種情況下的投注練習模式
我會避免一個最佳做法的答案,但給予足夠的細節,作出適當的選擇。有與您可能會更新在SSIS表主要有兩種方法,避免了TRUNCATE - LOAD:
1)使用OLEBD COMMAND
這是一個好方法,如果:
- 你有一個可靠的DateTimeUpdated列,
- 不會有太多的行更新,
- 有沒有很多的列更新
- 有在T並不多添加的列他的數據流(即派生列轉換)
- 並且更新語句非常簡單。
此方法執行很差,因爲它執行逐行更新。依賴審計日期列可以是減少要更新的行數的好方法,但如果在源系統中更新行並且未更改審計列,它也會導致問題。我建議只有信任它,如果它有觸發器,或者你可以確定沒有人可以在表上執行更新。
此外,當存在大量需要映射的列或數據流中發生大量轉換時,此組件出現短缺。例如,如果您要將所有字符串列從unicode轉換爲非unicode,那麼您可能會在組合中添加許多其他列,這會使映射和維護變得非常痛苦。該組件中的映射工具適用於大約10列,之後它開始非常快速地產生混淆。尤其是因爲你映射到編號參數而不是列名。
最後,如果您在更新語句中執行任何複雜的操作,它更適合於SQL代碼,而不是將其維護在沒有智能感知的組件編輯器中,而且通常很難使用。
2)階段的數據和數據流
這種方法適合所有的理由,OLEDB命令是壞的,但有一些缺點後執行執行SQL任務的更新。還有更多的代碼維護:
- 一對夫婦的T-SQL任務,
- 一個進程
- 和一個臨時表
這也意味着需要花費更多的時間來建立以及。但是,它的表現非常好,代碼更易於閱讀和理解。持續的維護也更簡單。
請參閱從這個其他問題,我今天發生的事情來回答關於同一主題我的筆記:SSIS Compare tables content and update another
相關問題
- 1. SQL - 表設計 - dateCreated會和DateUpdated列
- 2. 在Django/Python中爲Twilio訪問DateCreated和DateUpdated
- 3. Silverlight列表框項目源更改沒有更新列表
- 4. 如何從oracle的兩列表中更新目標表的列?
- 5. 更新目標表
- 6. 從給定的面額列表和目標值創建更改
- 7. 如何動態更新目標列表?
- 8. 輸出列不在目標表中?
- 9. Mysql:從源表更新記錄到目標表
- 10. 給出出現在列表中但不在列表中的ID
- 11. PL/SQL - 從源表中的一行更新目標表中的多個行
- 12. 使用相應的非空源字段更新目標表中的任何列
- 13. 無法更新目標表
- 14. 正在更新mysql表給出錯誤
- 15. 光標內觸發和更新表列
- 16. p:pickList不更新源和目標
- 17. 更新列表中的項目
- 18. 更新列表中的每個項目
- 19. 使目標相關的源列表
- 20. 更新c項目列表#
- 21. MVC更新列表項目
- 22. 更新列表框項目
- 23. 更新列表框項目
- 24. 使用列作爲單個更新查詢的源和目標
- 25. 在列表中更新列表
- 26. 如何從perforce的更改列表中獲取分支/合併源和目標?
- 27. 在腳本中檢索源表和目標表名
- 28. Silverlight列表框不會更新與新項目源
- 29. 更新MYSQL表給出成功味精,但不會更新表
- 30. 數據源更改時更新列表視圖項目
按日期?你能否形成更具體的問題?這與SSIS有什麼關係? – 2015-02-10 14:16:39
真的很容易。我想保持源目標在同步避免截斷。我正在尋找這種情況下的投注練習模式。 – cs0815 2015-02-10 14:27:36