SSIS数据流任务挂在执行前阶段 [英] SSIS Data Flow Task hangs on excecution of Pre-excecute phase
问题描述
我有一个执行中的数据流任务。
流程很简单,对不同的表进行两个查询(两个都有两个联接),然后通过一个公共ID对otuputs进行排序和合并,向所有记录添加一个静态列,保存该行计算用户变量以备后用,最后插入另一个数据库的表中。
我们正在使用OLE DB源和目标。源是MSSQL 2000,目标是MSSQL 2012
症状:
信息:在SSIS加载沙箱表处为0x40043006。管道:开始执行执行阶段。
信息:在SSIS加载沙箱表处为0x40043007 .Pipeline:预执行阶段开始。
在执行停止之前,仅此而已。
I have a Data Flow Task that is hanging on excecution.
The flow is simple, makes two queries to different tables (Both with a couple of joins), then sorts and merges the otuputs through a common id, adds a static column to all the records, saves the row count in a user variable for later use and finally inserts into a table on another DB.
We are using OLE DB Sources and Destination. Source is MSSQL 2000 and Destination is MSSQL 2012
Symptoms:
Information: 0x40043006 at Load Sandbox Table, SSIS.Pipeline: Prepare for Execute phase is beginning.
Information: 0x40043007 at Load Sandbox Table, SSIS.Pipeline: Pre-Execute phase is beginning.
And nothing more until the excecution is stopped.
< b>失败的解决方案:
SET FMTONLY OFF;
SET NOCOUNT ON;
在开始时添加了。
Failed solutions:
SET FMTONLY OFF;
SET NOCOUNT ON;
added at the beggining.
其他位:
我真的希望有人能帮助我。我对SSIS还是很陌生,这是我第一次使用它。我通常与Pentaho一起使用ETL,但是客户需要在SSIS上实现解决方案。我一直在与这个问题作斗争两天,而我的想法已经耗尽。
Extra bits:
I really hope someone can help me. I am fairly new to SSIS, this is the first time I use it. I usually work with Pentaho for my ETL but the client needs the solution to be implemented on SSIS. I've been battling with this issue for a couple of days now and I'm starting to run out of ideas to solve it.
当通过命令行运行时,它也卡住了,我得到以下输出:
When ran through the command line it gets stuck too and I get the following output:
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
然后再次冻结。
解决方案 (将其发布在这里是因为我无法回答自己的问题再过5个小时,我会在允许的时候这样做。)
我终于明白了。
事实证明,验证存在问题,但不仅是SSIS元素都要通过验证,如问题的第四个失败解决方案所述。
CONNECTIONS也得到验证已验证,并具有自己的延迟验证属性,该属性需要设置为true。
之后,执行时间从整个过程的40分钟以上或不到一分钟缩短到不到一分钟(这只是更大的过程中的一个步骤)。
我希望遇到相同问题的人可以轻松找到此解决方案,因为有很多人遇到此问题,几乎没有在线发布解决方案。
SOLUTION (Posting this here because I can't answer my own question for another 5 hours, I'll do it when I'm allowed to.)
I finally got it.
It turns out there is an issue with the validation, but not only SSIS elements go through that validation, as stated in the fourth failed solution of the question.
The CONNECTIONS also get validated and have their own Delay Validation property, which needs to be set to true.
After that the excecution time went from 40+ mins or no running to less than a minute for the full process (This is just one step of a much bigger process)
I hope people with this same problem can find this solution easily because there's a lot of people running into this problem and nearly no solutions posted online.
简而言之:检查任务中涉及的所有元素,包括数据库连接的 都将Delay Validation属性设置为True。
In a nutshell: Check that all your elements involved in the task, including the DB connections have Delay Validation Property set to True.
推荐答案
我终于明白了。
事实证明,验证存在问题,但不仅是SSIS元素都要通过验证,如问题的第四个失败解决方案所述。
CONNECTIONS也将得到验证,并具有自己的延迟验证属性,需要将其设置为true。
之后,执行时间从整个过程的40分钟以上或不到40分钟减少到不到一分钟(这只是更大过程的一个步骤)
我希望遇到同样问题的人可以容易找到此解决方案,因为有很多人遇到此问题,几乎没有在线发布解决方案。
I finally got it. It turns out there is an issue with the validation, but not only SSIS elements go through that validation, as stated in the fourth failed solution of the question. The CONNECTIONS also get validated and have their own Delay Validation property, which needs to be set to true. After that the excecution time went from 40+ mins or no running to less than a minute for the full process (This is just one step of a much bigger process) I hope people with this same problem can find this solution easily because there's a lot of people running into this problem and nearly no solutions posted online.
简而言之:您参与该任务的元素(包括数据库连接)的延迟验证属性设置为True。
In a nutshell: Check that all your elements involved in the task, including the DB connections have Delay Verification Property set to True.
这篇关于SSIS数据流任务挂在执行前阶段的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!