为什么我的 SSIS 包需要这么长时间才能执行?

Why does my SSIS package takes so long to execute?

我是创建 SSIS 包的新手。我有以下名为 BanqueDetailHistoryRef 的 SQL Server 2008 table,其中包含 10,922,583 行。

我想提取在特定日期(或多个日期)插入的行,并将它们插入另一台服务器上的 table。我正在尝试通过 SSIS 实现此目的,该图如下所示:

OLEDB Source (the table with the 10Million+ records) --> Lookup --> OLEDB Destination

在查找时我设置了:

现在,查询(在查找转换中指定):

SELECT * FROM BanqueDetailHistoryRef WHERE ValueDate = '2014-01-06';

通过 SQL Server Management Studio 运行 大约需要 1 秒,但是所描述的 SSIS 包需要很长时间才能 运行(比如一个小时)。

为什么会这样?这是达到我想要的结果的正确方法吗?

您没有显示您的 OLEDB 源组件是如何设置的,但查看 table 名称我猜您正在加载 OLEDB 源中的全部 1000 万行,然后使用查找来只过滤掉你需要的。这太慢了。

您可以完全删除 Lookup 并使用与 Lookup 中相同的查询来过滤 OLEDB 源中的行。