SSIS OLE DB命令

时间:2018-10-11 03:17:28

标签: ssis

我有两个Sql Server实例,我想使用服务器1中的值在服务器2中执行更新。目前,我正在使用OLE DB命令转换来更新服务器2中的表,但是它非常慢(大约需要4个小时)以更新100,000行以下)。有没有一种方法可以将来自服务器1的记录保存到服务器2的临时表中,以便在那里进行快速更新。我知道如果是同一台服务器,就可以做到。请分享一些想法。谢谢!

1 个答案:

答案 0 :(得分:0)

如果可能,您要避免使用OLE DB命令。它永远执行一次记录,这解释了您正在经历的长时间运行。试试看:

  1. 创建一个数据流任务,将所需的数据从服务器1加载到服务器2上的登台表。仅加载所需的数据,即将在更新中使用的值和加入的值。
  2. 创建连接到服务器2并执行您的update语句(或包含您的update语句的存储过程)的Execute SQL Task。
  3. (可选)您可能希望在数据流之前运行另一个Execute SQL任务,在该任务中将索引放到暂存表上,然后在数据流之后执行另一个SQL,在重建更新之前重建索引。这样做可能不值得,因此请务必同时进行测试,并考虑随着时间的流逝数据将增长多少。

如果您最终使用了它,请在评论中告诉我们它的运行速度。

相关问题