Ryo*_*oku 27 sql-server ssis etl
我有一个暂停执行的数据流任务.
流程很简单,对不同的表进行两次查询(两者都有几个连接),然后通过公共id对输出进行排序和合并,为所有记录添加静态列,将行计数保存在用户变量中以供日后使用使用并最终插入到另一个DB上的表中.我们正在使用OLE DB源和目标.源是MSSQL 2000,目标是MSSQL 2012
症状:
解决方案失败:
额外的一点:
我真的希望有人可以帮助我.我是SSIS的新手,这是我第一次使用它.我通常与Pentaho合作开发我的ETL,但客户需要在SSIS上实施解决方案.我已经和这个问题争斗了好几天了,而且我已经开始没有想法来解决这个问题了.
当通过命令行运行时,它也会卡住,我得到以下输出:
Progress: 2013-03-19 14:36:26.21
Source: Load Sandbox Table
Validating: 0% complete
End Progress
Progress: 2013-03-19 14:36:26.21
Source: Load Sandbox Table
Validating: 12% complete
End Progress
Progress: 2013-03-19 14:36:26.22
Source: Load Sandbox Table
Validating: 25% complete
End Progress
Progress: 2013-03-19 14:36:26.22
Source: Load Sandbox Table
Validating: 37% complete
End Progress
Progress: 2013-03-19 14:36:26.23
Source: Load Sandbox Table
Validating: 50% complete
End Progress
Progress: 2013-03-19 14:36:26.25
Source: Load Sandbox Table
Validating: 62% complete
End Progress
Progress: 2013-03-19 14:36:26.25
Source: Load Sandbox Table
Validating: 75% complete
End Progress
Progress: 2013-03-19 14:36:26.25
Source: Load Sandbox Table
Validating: 87% complete
End Progress
Progress: 2013-03-19 14:36:26.25
Source: Load Sandbox Table
Validating: 100% complete
End Progress
Warning: 2013-03-19 14:36:26.26
Code: 0x80047076
Source: Load Sandbox Table SSIS.Pipeline
Description: The output column "ITEM_OID (1)" (47) on output "Merge Join Outp
ut" (28) and component "Merge Join" (11) is not subsequently used in the Data Fl
ow task. Removing this unused output column can increase Data Flow task performa
nce.
End Warning
Progress: 2013-03-19 14:36:26.27
Source: Load Sandbox Table
Prepare for Execute: 0% complete
End Progress
Progress: 2013-03-19 14:36:26.27
Source: Load Sandbox Table
Prepare for Execute: 12% complete
End Progress
Progress: 2013-03-19 14:36:26.27
Source: Load Sandbox Table
Prepare for Execute: 25% complete
End Progress
Progress: 2013-03-19 14:36:26.27
Source: Load Sandbox Table
Prepare for Execute: 37% complete
End Progress
Progress: 2013-03-19 14:36:26.27
Source: Load Sandbox Table
Prepare for Execute: 50% complete
End Progress
Progress: 2013-03-19 14:36:26.27
Source: Load Sandbox Table
Prepare for Execute: 62% complete
End Progress
Progress: 2013-03-19 14:36:26.27
Source: Load Sandbox Table
Prepare for Execute: 75% complete
End Progress
Progress: 2013-03-19 14:36:26.27
Source: Load Sandbox Table
Prepare for Execute: 87% complete
End Progress
Progress: 2013-03-19 14:36:26.27
Source: Load Sandbox Table
Prepare for Execute: 100% complete
End Progress
Progress: 2013-03-19 14:36:26.31
Source: Load Sandbox Table
Pre-Execute: 0% complete
End Progress
Progress: 2013-03-19 14:36:26.31
Source: Load Sandbox Table
Pre-Execute: 12% complete
End Progress
Progress: 2013-03-19 14:36:26.31
Source: Load Sandbox Table
Pre-Execute: 25% complete
End Progress
Progress: 2013-03-19 14:36:26.34
Source: Load Sandbox Table
Pre-Execute: 37% complete
End Progress
Progress: 2013-03-19 14:36:45.69
Source: Load Sandbox Table
Pre-Execute: 50% complete
End Progress
Run Code Online (Sandbox Code Playgroud)
之后它又冻结了.
解决方案 (这里发布这个因为我再也不能回答我自己的问题5个小时了,我会在被允许时这样做.)
我终于明白了.
事实证明,验证存在问题,但不仅SSIS元素经过了验证,如第四个问题的失败解决方案中所述.
CONNECTIONS也经过验证并具有自己的Delay Validation属性,需要将其设置为true.
之后,完成过程的执行时间从40多分钟或不运行到不到一分钟(这只是一个更大的过程的一步)
我希望有这个问题的人能够轻松找到这个解决方案,因为有很多遇到此问题的人几乎没有在线发布的解决方案.
简而言之: 检查任务中涉及的所有元素,包括数据库连接是否将Delay Verification Property设置为True.
Ryo*_*oku 13
我终于明白了.事实证明,验证存在问题,但不仅SSIS元素经过了验证,如第四个问题的失败解决方案中所述.CONNECTIONS也经过验证并具有自己的Delay Validation属性,需要将其设置为true.此后,excecution时间从40多分钟去或没有运行的全过程不到一分钟(这是一个更大的过程中只需一个步骤),我希望与这个同样的问题,人们可以很容易地找到这个解决方案,因为有很多遇到此问题的人几乎没有在线发布的解决方案.
简而言之:检查任务中涉及的所有元素,包括数据库连接是否将Delay Verification Property设置为True.
我知道这已经很旧了,但我刚刚找到了一个可能有帮助的链接。我个人使用视图将数据导出到外部数据库,并且数据验证花费了大量时间来验证视图。
其中重要的部分是微软的回答
Microsoft 发布于 2008 年 4 月 28 日下午 2:45
这是一个已知问题,也是当前设计的结果。
有两种方法可以从 OLE DB 源视图中提取数据:
使用“表或视图”访问方法
使用“SQL命令”访问方法,并输入查询“select * from ***”
两种方法生成的执行计划不同。
前者使用的效率不如后者。
如果您在使用第一种方法时遇到性能问题,可以切换到第二种方法作为解决方法。
我们还在博客中发布了这个问题 - > http://blogs.msdn.com/sqlperf/archive/2007/04/29/set-up-ole-db-source-to-read-from-view-efficiently.aspx。
由于这是一个“按设计”的项目,并且我们相信有解决办法,因此我们目前不会提供任何更改。因此,我们将关闭与您提交的内容相关的案例。如果您不同意,请随时重新提交。
我们感谢您投入的时间、精力以及对 SSIS 的支持。