SSIS结果集与存储过程并行输入

时间:2010-12-01 18:55:33

标签: sql-server stored-procedures ssis parallel-processing

我目前有2个存储过程...

存储过程#1根据一系列标准返回产品列表

存储过程#2接受单个productID并执行一些复杂的查询逻辑并将结果写入表

我的问题是有超过30,000个产品,并且从存储过程#1中一次一个地查看结果集太慢,我无法轻松地将整个批量调用集成到存储过程#2

我的问题如下:使用SSIS有一种方法可以设置一个任务,该任务将从存储过程#1中获取结果集,并与每一行并行调用存储过程#2。 / p>

EXAMPLE of Stored Proc 1 result set
-----------------------------------
Product ID
----------
ABC123
XYZ987
AAABBB
CCCDDD
EEEFFF

I need to setup SSIS to call the following in parallel:
-------------------------------------------------------
EXEC StoredProc2 'ABC123'
EXEC StoredProc2 'XYZ987'
EXEC StoredProc2 'AAABBB'
EXEC StoredProc2 'CCCDDD'
EXEC StoredProc2 'EEEFFF'

1 个答案:

答案 0 :(得分:1)

哎呀,这是SP#2的许多执行。你可以这样做。

创建数据流任务。将OLE DB Source组件添加到数据流。编辑组件并将其配置为执行SP#1。您可以在编辑器中查看列以查看将从组件输出的内容。

添加OLE DB命令数据流转换组件。创建从第一个组件到OLE DB命令组件的链接。编辑组件并输入将在“组件属性”选项卡上的SqlCommand属性中运行SP#2的SQL语句。为SP的每个参数添加问号(?)。

选择Column Mappings选项卡。将输入列与每个参数相关联。