我正在创建一个SSIS包,它本质上试图查找表A中表B中没有的所有行。连接列是表A中的标识列,它是聚簇索引,表B中的列不是身份,但已编入索引。而且我一次批量处理10,000行。表A和表B都有大约350M行。
我最初认为Lookup转换是合适的,但我不能使用Full Cache,因为它试图在缓存中加载350M行!如果我使用No Cache,那么只查找10,000行的过程非常慢(即使表B中的查阅列已编入索引)。
此外,表A和表B位于两个不同服务器上的两个不同数据库中。
是否有另一种转变更适合我想要做的事情?
使用SQL Server 2014。
答案 0 :(得分:1)
您可以尝试在数据流任务中合并连接组件。
实际上,在处理大量行时,您可以尝试其他一些方法来提高性能,例如将两个表导入到sql join的临时数据库中,因为set操作通常比逐行进程快。