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
Sql 具有多个条件拆分组件的SSIS包中的性能_Sql_Ssis - Fatal编程技术网

Sql 具有多个条件拆分组件的SSIS包中的性能

Sql 具有多个条件拆分组件的SSIS包中的性能,sql,ssis,Sql,Ssis,我使用条件拆分来验证数据,并将坏数据发送到包中的备用路径。我的条件拆分代码与此类似: (性别!=“M”|性别!=“F”|性别!=“U”)==FALSE (性别==“M”| |性别==“F”| |性别==“U”)==TRUE 如果该值为true,则将控制传递给另一个条件拆分,如果为false,则将该行重定向到错误表 我在一个包中使用了25个条件拆分,我想知道从性能角度看这是否是一件好事。与使用另一种方法验证数据相比,使用条件拆分的性能如何 我添加了另一个场景,但它在条件拆分中不起作用。请查找以下信

我使用条件拆分来验证数据,并将坏数据发送到包中的备用路径。我的条件拆分代码与此类似:

(性别!=“M”|性别!=“F”|性别!=“U”)==FALSE (性别==“M”| |性别==“F”| |性别==“U”)==TRUE

如果该值为true,则将控制传递给另一个条件拆分,如果为false,则将该行重定向到错误表

我在一个包中使用了25个条件拆分,我想知道从性能角度看这是否是一件好事。与使用另一种方法验证数据相比,使用条件拆分的性能如何

我添加了另一个场景,但它在条件拆分中不起作用。请查找以下信息

我只允许使用此格式的日期值以及从'01/01/1753'到'12/31/9000'的期间

我的条件

(Dob Varchar(10))

子串(Dob,1,2)“31”|子串(Dob,7,4)<“1753”|子串(Dob,7,4)>“9000”==FALSE

我的输入-1990年12月32日、2000年13月15日、2010年12月31日、1753年1月1日、9000年12月31日、9001年12月31日、9001年1月1日 预期产出-2010年12月31日,1753年1月1日,9000年12月31日

但在我的情况下,所有的记录都被认为是假的。
请给出此场景的解决方案。

确定这一点的最佳方法是创建同一个包两次,一次在此处以这种方式进行验证,然后在此处以另一种方式进行验证。通过右键单击包并从关联菜单中选择执行和可视化性能,您可以使用BIDS来运行每个包。完成此操作后,将结果作为答案发布,以便其他人可以从您的工作中受益

确定这一点的最佳方法是创建同一个包两次,一次以这种方式验证,一次以另一种方式验证。通过右键单击包并从关联菜单中选择执行和可视化性能,您可以使用BIDS来运行每个包。完成此操作后,将结果作为答案发布,以便其他人可以从您的工作中受益

正如William Todd Salzman所指出的,测试是确定软件包最佳设置的唯一方法。但是,一般来说,尽管看起来有悖常理,但在特定组件中执行的操作越少,SSI的执行速度就越快。原因是SSIS引擎可以确定并行性的方式—如果它可以确定派生列1中的列B未被操纵,那么它可以安全地开始更改派生列2中的该值

考虑到您的场景,我希望创建多个派生列转换来定义各种布尔检查。例如,我会创建一个字段来指示我们是否有这样一个有效的性别

添加名为
DFT IsGenderValid
的派生列转换,我将对其进行配置

  • IsGenderValid
  • “添加为新列”
  • 性别!=“M”| |性别!=“F”| |性别!=“U”
  • 德图布尔
然后,如果没有其他原因,只有一个地方可以测试、纠正和维护逻辑,我就会有一个对布尔值操作的条件拆分转换


根据业务逻辑需要,重复此模式进行尽可能多的验证。

正如William Todd Salzman所指出的,测试是确定软件包最佳设置的唯一方法。但是,一般来说,尽管看起来有悖常理,但在特定组件中执行的操作越少,SSI的执行速度就越快。原因是SSIS引擎可以确定并行性的方式—如果它可以确定派生列1中的列B未被操纵,那么它可以安全地开始更改派生列2中的该值

考虑到您的场景,我希望创建多个派生列转换来定义各种布尔检查。例如,我会创建一个字段来指示我们是否有这样一个有效的性别

添加名为
DFT IsGenderValid
的派生列转换,我将对其进行配置

  • IsGenderValid
  • “添加为新列”
  • 性别!=“M”| |性别!=“F”| |性别!=“U”
  • 德图布尔
然后,如果没有其他原因,只有一个地方可以测试、纠正和维护逻辑,我就会有一个对布尔值操作的条件拆分转换


根据您的业务逻辑需要,对尽可能多的验证重复此模式。

请在您的问题中加入更多细节-目前无法回答您验证哪些数据,以及以何种方式验证?你需要多少?什么样的表现才能让人接受?这个问题需要设置某种上下文…例如,在条件分割-1中。(性别!=“M”|性别!=“F”|性别!=“U”)==FALSE 2。(性别==“M”|性别==“F”|性别==“F”|性别==“U”)==如果值为TRUE,我必须检查另一个条件,否则我将移动到错误表。我已经创建了一个包。我使用条件拆分验证数据,在这个包中我使用了25个条件拆分。这个性能是否明智。我的朋友告诉我它的性能提高了很多。任何人都可以为我提供指导。请在你的问题中加入更多细节-目前无法回答你验证哪些数据,以及以何种方式验证?你需要多少?什么样的表现才能让人接受?这个问题需要设置某种上下文…例如,在条件分割-1中。(性别!=“M”|性别!=“F”|性别!=“U”)==FALSE 2。(性别==“M”|性别==“F”|性别==“F”|性别==“U”)==如果值为TRUE,我必须检查另一个条件,否则我将移动到错误表。我已经创建了一个包。我使用条件拆分验证数据,在这个包中我使用了25个条件拆分。