【问题标题】:How to design a CDC staging table? SSIS OLE DB Command too slow如何设计CDC分期表? SSIS OLE DB 命令太慢
【发布时间】: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


【解决方案1】:

创建两个临时表(更新和删除)并批量处理更改。 你可以在这里找到更多细节 --> https://www.mattmasson.com/2011/12/cdc-in-ssis-for-sql-server-2012-2/

【讨论】:

    猜你喜欢
    • 2016-05-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多