【发布时间】:2019-09-09 13:41:59
【问题描述】:
我有一个包含约 80 万条记录和约 100 个字段的表。 该表有一个 ID 字段,它是唯一的 NVACHAR (18) 类型。 该表还有一个名为 LastModifiedDate 的字段,其中包含所做的最新更改。
我正在尝试根据以下内容执行增量加载:
- 所有数据的初始加载(发生一次)
- 根据 LastModifiedDate 仅加载最近更改/添加的记录 (~30k)
- 基于关键字段(ID),对现有数据的最近数据执行INSERT/UPDATE (*) 假设记录没有被删除 我正在尝试通过执行以下步骤来实现这一目标:
- 截断临时表(保存最近的数据)
- 提取最近的数据并将其存储在临时表中
- 从临时表中提取数据
- 使用具有以下定义的查找: 一种。缓存模式 = 完全缓存 湾。连接类型 = OLE DB 连接管理器 C。没有匹配的条目 = 忽略失败
- 从最终表中选择 ID 并将其链接到临时表中的 ID 字段,并为新字段提供输出别名 LKP_ID
- 使用条件拆分并检查是否 ISNULL(LKP_ID) 当 true 表示 INSERT 并且 false 表示 UPDATE 时
- INSERT 表示将临时表中的数据插入到最终表中,UPDATE 表示将根据临时表数据执行 SQL UPDATE 语句
最终结果很好,但运行时间很糟糕。大约需要 30 分钟左右才能完成
【问题讨论】:
-
你从哪里加载数据?
-
SQL 服务器数据库表
标签: performance ssis lookup