2010-08-09 40 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