我使用 SSIS 传输数据,我使用 SQL server 2016 我需要在 DataFlow 任务中使用一些查找组件,如果我无法找到匹配项,我应该将记录保存为一个表中的信息。 这意味着如果对于每个Lookup组件我找不到相关记录,我必须将该行保存在表中。
我必须输入DataFlow设计,我想知道哪一个比其他设计好?
您可以在下面的图像中看到DataFlow设计。
在此模式中,我使用两个单独的 OLE DB目标,但在两者中,我将信息保存在同一个表中。
在此模式中,我使用Union All Component将所有记录合并,并在Destination表中同时保存它们。
我想知道哪种设计比另一种更好,每种设计的优缺点是什么?
答案 0 :(得分:2)
为了获得更好的性能和其他方面,最好使用UNION ALL
,因为:
UNION ALL
正在打开与数据库的一个连接(其他情况是为每个oledb目的地打开一个连接)
如果LookUp 1
Lookup
导致的数据包失败,OleDB Destination
导致的数据将被插入OLEDB Destination
并且程序包失败,因此重新启动数据时可能会重新插入。
为同一个表创建多个element.send_keys
不是一个好主意,由于(Table Exclusive-Lock)每个插入都会等待,这会降低性能其他人要完成