糟糕的生产数据库架构指示我执行多个左连接、on 子句中带有范围条件的左连接以及字符列连接。
尽管我的包没有错误,但它仍处于预执行阶段。
我在网上阅读了很多文章,其中介绍了如何防止这种情况。例如延迟验证
、外部元数据
、...等
请帮我了解一下Pre-execute阶段数据流、控制流和sql server引擎的工作是什么?
最佳答案
enable logging 总是一个好主意在你的 SSIS 包中。如果没有日志记录,就很难准确确定 SSIS 做了什么,特别是当您的包由任务调度程序连夜执行时!
启用;右键单击 control flow ,然后从菜单中选择日志记录...。一个dialog will open 。您可以使用此屏幕配置记录数据的位置(Windows 事件日志、SQL Server、文本文件等)以及记录的内容。
我建议您记录所有内容。输出可能非常冗长。恐怕阅读 SSIS 日志是一项后天习得的技能。有很多您需要的细节,但这可能会让您很难找到您感兴趣的确切行。这里没有捷径,您需要卷起袖子并陷入困境。
包含大量连接的包可能需要一段时间才能完成预执行。我注意到与文件系统有大量连接的包特别慢。
编辑 我刚刚注意到我实际上并没有回答OPs的问题。所以这里...
虽然 SSIS 似乎被卡住/挂起,但它可能并非如此。记录所有内容并检查以修复。您可以查看运行中的日志,这很有帮助。
关于sql-server - SSIS 在包执行的预执行阶段的结构行为是什么?为什么重包会在预执行阶段挂起?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43350011/