SSIS主包设计要求反馈-运行一系列子包
总的来说,我正在寻找有关运行主程序包的两种不同设计选项的反馈 我有一个代理调用的包,它运行一系列处理数据的包(我想我们现在最多有50个) 最初的设计是将包分成更小的块,称为directories,它调用实际的包。样本如下: 我在这种方法中看到(并体验到)的一些看法是: 1.每个软件包都必须打开(即使没有必要运行ie,但没有文件存在) 2. #1为流程的完成增加了很多时间 3.当然是并行运行的 因此,我开发了一种新的方法,只运行包含必要文件的包,如果没有,则记录尝试。它非常干净,您不需要运行每个包的所有文件连接,因为您正在迭代它们 我不确定它是否并行运行(我实际上对此表示怀疑) 我正在添加填充ADO对象的数据流,该对象在foreach中迭代,以演示正在处理的文件 注意:通常在DEV环境中,需要处理的文件不多,但是,当部署到TEST和PROD时,将有大多数文件需要处理 我能得到这两种不同方法的一些反馈吗?SSIS主包设计要求反馈-运行一系列子包,ssis,sql-server-data-tools,ssis-2012,Ssis,Sql Server Data Tools,Ssis 2012,总的来说,我正在寻找有关运行主程序包的两种不同设计选项的反馈 我有一个代理调用的包,它运行一系列处理数据的包(我想我们现在最多有50个) 最初的设计是将包分成更小的块,称为directories,它调用实际的包。样本如下: 我在这种方法中看到(并体验到)的一些看法是: 1.每个软件包都必须打开(即使没有必要运行ie,但没有文件存在) 2. #1为流程的完成增加了很多时间 3.当然是并行运行的 因此,我开发了一种新的方法,只运行包含必要文件的包,如果没有,则记录尝试。它非常干净,您不需要运行每
任何提供有效反馈的人都将获得投票 我将使用第二种方法,因为它更干净,易于调试 以下是改进第二种方法的建议:
- 创建一个包含所有包名称、启用/禁用标志、文件可用标志的控制表
- 创建一个轮询包,它将遍历文件并相应地设置标志和包标志
- 循环此控制表,并仅运行已启用且具有文件的控制表
- 创建一个包含所有包名称、启用/禁用标志、文件可用标志的控制表
- 创建一个轮询包,它将遍历文件并相应地设置标志和包标志
- 循环此控制表,并仅运行已启用且具有文件的控制表
脚本任务
检查目标中是否存在文件
例如:
唯一的缺点是,您必须在50个包中进行更改,但这是一次性活动。您的并行执行将保持不变。我将使用修改后的第一种方法,即类似于包内的方法,使用
脚本任务
检查目标中是否存在文件
例如:
唯一的缺点是,您必须在50个包中进行更改,但这是一次性活动。您的并行执行将保持不变。我担心没有并行运行会降低速度。我创建了一个数据流,并将所需信息存储在一个正在循环的ADO.Recordset中,而不是一个单独的包。我将把数据流添加到问题中以供参考。我担心没有并行运行会降低速度。我创建了一个数据流,并将所需信息存储在一个正在循环的ADO.Recordset中,而不是一个单独的包。我将把数据流添加到问题中以供参考。检查下面我的解决方案。另一方面,你是如何拥有黑色背景的?我也使用sql-2012,但它是灰色的O@PrabhatG工具..选项..颜色主题(黑色)检查下面的我的解决方案。另一方面,你是如何拥有黑色背景的?我也使用sql-2012,但它是灰色的O@PrabhatG工具..选项..要检查的包中已存在的颜色主题(黑色)。旧版本是这样做的,而新版本则使用foreach文件循环来精确指定文件。我发现foreach方法比脚本任务更容易交给初级DBs。然而,仅仅打开包并检查需要时间。逻辑上一起打开100个包并运行1个脚本任务应该比逐个决定是否打开包更容易。只是我的意见。也许您可以自己运行它并评估性能?这已经在要检查的包中了。旧版本是这样做的,而新版本则使用foreach文件循环来精确指定文件。我发现foreach方法比脚本任务更容易交给初级DBs。然而,仅仅打开包并检查需要时间。逻辑上一起打开100个包并运行1个脚本任务应该比逐个决定是否打开包更容易。只是我的意见。也许你可以自己运行并评估性能?