Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SSIS主包设计要求反馈-运行一系列子包_Ssis_Sql Server Data Tools_Ssis 2012 - Fatal编程技术网

SSIS主包设计要求反馈-运行一系列子包

SSIS主包设计要求反馈-运行一系列子包,ssis,sql-server-data-tools,ssis-2012,Ssis,Sql Server Data Tools,Ssis 2012,总的来说,我正在寻找有关运行主程序包的两种不同设计选项的反馈 我有一个代理调用的包,它运行一系列处理数据的包(我想我们现在最多有50个) 最初的设计是将包分成更小的块,称为directories,它调用实际的包。样本如下: 我在这种方法中看到(并体验到)的一些看法是: 1.每个软件包都必须打开(即使没有必要运行ie,但没有文件存在) 2. #1为流程的完成增加了很多时间 3.当然是并行运行的 因此,我开发了一种新的方法,只运行包含必要文件的包,如果没有,则记录尝试。它非常干净,您不需要运行每

总的来说,我正在寻找有关运行主程序包的两种不同设计选项的反馈

我有一个代理调用的包,它运行一系列处理数据的包(我想我们现在最多有50个)

最初的设计是将包分成更小的块,称为directories,它调用实际的包。样本如下:

我在这种方法中看到(并体验到)的一些看法是: 1.每个软件包都必须打开(即使没有必要运行ie,但没有文件存在) 2. #1为流程的完成增加了很多时间 3.当然是并行运行的

因此,我开发了一种新的方法,只运行包含必要文件的包,如果没有,则记录尝试。它非常干净,您不需要运行每个包的所有文件连接,因为您正在迭代它们

我不确定它是否并行运行(我实际上对此表示怀疑)

我正在添加填充ADO对象的数据流,该对象在foreach中迭代,以演示正在处理的文件

注意:通常在DEV环境中,需要处理的文件不多,但是,当部署到TEST和PROD时,将有大多数文件需要处理

我能得到这两种不同方法的一些反馈吗?


任何提供有效反馈的人都将获得投票

我将使用第二种方法,因为它更干净,易于调试

以下是改进第二种方法的建议:

  • 创建一个包含所有包名称、启用/禁用标志、文件可用标志的控制表
  • 创建一个轮询包,它将遍历文件并相应地设置标志和包标志
  • 循环此控制表,并仅运行已启用且具有文件的控制表

我将采用第二种方法,因为它更干净,易于调试

以下是改进第二种方法的建议:

  • 创建一个包含所有包名称、启用/禁用标志、文件可用标志的控制表
  • 创建一个轮询包,它将遍历文件并相应地设置标志和包标志
  • 循环此控制表,并仅运行已启用且具有文件的控制表

我会使用修改后的第一种方法,即类似于包内的方法,使用
脚本任务
检查目标中是否存在文件

例如:

  • 创建脚本任务和变量

  • 在脚本任务中,编写一个类似于下图的代码(逻辑是,如果找到文件,则将其标记为true,否则标记为false):

  • 现在使用此标志约束DFT的执行,如下所示:

  • 唯一的缺点是,您必须在50个包中进行更改,但这是一次性活动。您的并行执行将保持不变。

    我将使用修改后的第一种方法,即类似于包内的方法,使用
    脚本任务
    检查目标中是否存在文件

    例如:

  • 创建脚本任务和变量

  • 在脚本任务中,编写一个类似于下图的代码(逻辑是,如果找到文件,则将其标记为true,否则标记为false):

  • 现在使用此标志约束DFT的执行,如下所示:

  • 唯一的缺点是,您必须在50个包中进行更改,但这是一次性活动。您的并行执行将保持不变。

    我担心没有并行运行会降低速度。我创建了一个数据流,并将所需信息存储在一个正在循环的ADO.Recordset中,而不是一个单独的包。我将把数据流添加到问题中以供参考。我担心没有并行运行会降低速度。我创建了一个数据流,并将所需信息存储在一个正在循环的ADO.Recordset中,而不是一个单独的包。我将把数据流添加到问题中以供参考。检查下面我的解决方案。另一方面,你是如何拥有黑色背景的?我也使用sql-2012,但它是灰色的O@PrabhatG工具..选项..颜色主题(黑色)检查下面的我的解决方案。另一方面,你是如何拥有黑色背景的?我也使用sql-2012,但它是灰色的O@PrabhatG工具..选项..要检查的包中已存在的颜色主题(黑色)。旧版本是这样做的,而新版本则使用foreach文件循环来精确指定文件。我发现foreach方法比脚本任务更容易交给初级DBs。然而,仅仅打开包并检查需要时间。逻辑上一起打开100个包并运行1个脚本任务应该比逐个决定是否打开包更容易。只是我的意见。也许您可以自己运行它并评估性能?这已经在要检查的包中了。旧版本是这样做的,而新版本则使用foreach文件循环来精确指定文件。我发现foreach方法比脚本任务更容易交给初级DBs。然而,仅仅打开包并检查需要时间。逻辑上一起打开100个包并运行1个脚本任务应该比逐个决定是否打开包更容易。只是我的意见。也许你可以自己运行并评估性能?