【发布时间】:2015-07-06 19:10:53
【问题描述】:
我有一个数据流,我需要将来自两个不同来源的数据合并到一个目标表中,但也只想插入唯一值而忽略现有值。
行键由两列组成,我将其转换为 SHA1 哈希以便更容易合并。
我做“不存在”的方式是通过“左外连接”合并连接,我得到右连接,然后我使用条件拆分来只获取空值。
每个源都按哈希排序。现有数据源被多播到两个连接以检查现有值,我只想要新的。
我遇到的问题是,尽管至少对我而言,一切看起来都不错,但我仍然遇到唯一键违规(source1 和 source2 都产生完全不同的键,并且数据集中的键是唯一的)而且我无法追踪问题。
我尝试通过添加更多排序来减慢一切,即使在“现有数据”源完成后,它仍然会产生唯一的键违规。
【问题讨论】:
-
无聊的现实是,如果您使用数据流将源数据完全导入临时表,然后使用更新目标表的存储过程进行所有这些清理,您可能会获得更好的性能.
-
呸呸呸。是的,我倾向于那个。很快我就会有比非临时表更多的临时表,已经有很多了
标签: sql-server ssis