2010-08-09 66 views
0

我正在更新同一數據庫中另一個表中的表 - 更新/插入計數的最佳方法是什麼?使用PGNP計數SSIS中的更新/插入

我能想到的幾個方法:

  1. 加入的表和統計(即內連接進行更新,左加入了空的插入),然後執行更新/插入

  2. 在目標表中使用修改日期(這是保持正確的),並在MOD日期發生變化時進行計數,這將在更新後以及插入之前和之後完成...確定您明白了。

目前我使用的方法二,因爲我認爲它可能會更快,不必加入表格,修改時間戳數據無論如何。

這是什麼人民的想法? (我想標記這個最佳做法,但該標籤似乎已經消失)。

EDITED:對不起,我應該已經更具體到場景 - 假設只有一個併發更新(這是爲了更新存檔/倉庫一夜之間)和SSIS提供者使用將不會返回行數更新。

+1

哪個RDBMS? ... – 2010-08-09 10:49:40

+0

這應該不重要。我使用的是postgres,但是這個問題適用於任何RDBMS,儘管我知道postgres的計數很慢 – 2010-08-09 10:50:53

+1

它的確如一些例如Sybase將數字作爲調用API的一部分返回 – Mark 2010-08-09 10:52:13

回答

0

我可能會繼續使用第二個選項。如果您知道每日運行(或任何其他常規時間間隔),則可以根據timestamp列中的日期部分/日期(取決於時間間隔)值來測試所有修改(更新和插入)。

這樣,當插入/連接/其他需求發生變化時,您不必重寫更新測試過程。

(當然,你很容易被其他代理的變化)。

您還可以引入一個'幫助列',您可以在其中設置唯一的更新值,但味道很腥。

+0

我不喜歡魚。 ;)沒有其他人有權寫入這個數據庫,所以應該是安全的。 – 2010-08-09 15:06:06