带有过滤参考表的SSIS查找

时间:2010-06-09 15:10:57

标签: ssis performance filtered-lookup

我正在努力提高SSIS包的性能。

我开始使用的一件事是过滤Lookups的参考表。到目前为止,我使用表作为查找的参考表。

第一个改进是将表更改为只从该表中选择我需要的列的SQL子句。

接下来,我想在此表中加载我知道我肯定会使用的记录。如果我在这种状态下维持它,我将加载30万行或更多(每行大约500 kb的二进制内容的大行)并且只使用它们中的大约100行。

我会在SQL查询中放置一些过滤器来设置查找的引用表,但是在该过滤器中我需要使用我的OLE DB源中加载的行的所有ID。

有没有办法做到这一点?

我想过使用OleDB命令而不是Lookup一次加载每一行,但除了耗费时间外,我可能会为100个不同的行加载相同的东西100次,当我可以加载一次在查找和使用它100次...

启用缓存仍然是另一种选择仍然听起来不太好,因为它会减慢我们的速度 - 我们已经非常慢了。

任何想法都非常适合。

1 个答案:

答案 0 :(得分:0)

一种可能性是首先将不同的ID流式传输到一个数据流中的永久/临时表,然后在稍后的数据流中使用它(使用连接)(您可能必须推迟验证)。

在我们的许多ETL包中,我们首先将数据流式传输到Raw文件中,处理所有类型的转换以及那里的所有内容。然后,当所有这些转换都成功时,我们会处理创建新维度,然后处理链接到维度的事实。