【发布时间】:2017-11-14 03:54:34
【问题描述】:
我的控制流任务如下所示:
我的数据流任务如下所示:
从启用 CDC 的表中获取数据时,我在使用 OLE DB 命令执行逐行更新时遇到了瓶颈。对于少量记录,我看到了巨大的性能冲击和较长的运行时间。我希望能够以 2-3 分钟的间隔运行它,但我看到运行时间约为 1 小时 :( 我听说有人在目标表上使用暂存表(OLE DB 目标)而不是 OLE DB 命令。
这些中间临时表通常是如何设计的?它们是 CDC 表中 lsn 条目的副本,还是我将 SQL 命令插入到这些表中以便稍后在控制任务中批量运行?如何将中间表中的更改应用到最终目标表?
【问题讨论】:
-
将更新定向到只是一个简单的
insert的临时表,然后使用Execute SQL任务运行update,以在一个基于集合的操作中运行update。
标签: sql-server database-design ssis change-data-capture