【问题标题】:ssis - merge join alternativessis - 合并连接替代
【发布时间】:2011-11-04 16:58:34
【问题描述】:

我在数据库 D1 中有一个表 T1,在数据库 D2 中有一个表 T2。从 T2 开始,我只需要那些主键列在 T1 中的记录。 到目前为止,我知道的唯一方法是使用 Merge Join (Inner Join)。由于 T2 包含的记录比 T1 多得多,因此合并连接将消除 T2 中不存在于 T1 中的所有记录。由于这种方法很慢,还有其他方法可以完成这项任务吗?

谢谢,
伊利亚

【问题讨论】:

    标签: performance join ssis merge


    【解决方案1】:

    Lookup Transformation 不起作用有什么原因吗?

    【讨论】:

    • 嗯...我也一定会尝试这个。谢谢!
    • 因为听起来查找表会相当大,所以您需要研究高级选项并将查找类型从完全缓存更改为部分缓存或无缓存。否则,包将需要很长时间才能启动,因为它在本地缓存该数据。 2005 年还是 2008 年?
    【解决方案2】:

    D1 和 D2 是否都在同一个 SQL Server 实例上?如果是这样,那么查询就很容易编写了:

    SELECT t2.* 
    FROM D2.schema2.T2 t2
    JOIN D1.schema1.T1 t1 ON t1.id = t2.id
    

    (显然,您必须替换连接中主键列的真实名称,以及 T1 和 T2 所在的架构。)

    【讨论】:

      【解决方案3】:

      或者您可以使您的数据流源成为一个带有连接的查询而不是一个表。

      【讨论】:

      • 对不起,我不明白你的解释,你能说得更具体点吗?请注意,我有两个不同的数据源,并从这 2 个数据库中连接了两个表。
      猜你喜欢
      • 2019-03-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多