如何从表中获取数据并将其用于SSIS作业的脚本组件中进行比较

时间:2014-06-30 09:23:12

标签: ssis

我有一个SSIS作业,它从excel文件获取数据并更新数据库表SampleTable“。

例如,考虑一下,我正在更新“SampleTable”表中的以下字段:

  1. FIELD1
  2. field2
  3. LASTUPDATED
  4. 只有当任一字段(即field1和field2)的值发生任何变化时,才需要更改字段(LastUpdated)

    更新逻辑写在脚本组件中。

    从数据库中获取记录值并将其与excel中的值进行比较将是一个巨大的性能损失。

    因此,我正在寻找一个性能友好的解决方案,以便只有一次我将从数据库表中获取数据(在脚本执行之前)并暂时将其存储在某处。

1 个答案:

答案 0 :(得分:0)

有一个选项可以将重定向更新到staging / temp表,并且只将新记录插入到原始表中。然后使用SP / Task在原始表和登台表之间同步记录。它只是隔离更新和插入操作。但是你会看到性能上的提升。

您可以通过查找转换实现相同功能,以便您可以利用缓存连接管理器的功能。

This article将提供有关如何使用Lookup转换进行更新/插入以及this关于MSDN缓存连接管理器的指南。

Using the cache connection manager

Checking if a row exists and if it does, has it changed?

还要了解this article的性能最佳做法。