【发布时间】:2017-03-10 00:59:47
【问题描述】:
我正在创建一个 ssis 包,它应该将数据从一个数据库传输到另一个数据库。但是,如果数据流任务需要太多时间来执行,我希望它停止并继续执行其他任务。
我已经尝试将CommandTimeout 属性设置为数据流源,但数据流任务并没有停止运行。
【问题讨论】:
-
我们可能想出一个复杂的解决方案——将数据流放在一个包中,从脚本任务中调用包,在脚本任务中添加超时条件以终止进程。但是,您对优化加载过程持开放态度吗?
-
好吧,如果没有其他解决方案,我想我将不得不和你一起去。顺便说一句,加载过程已经优化,它是源数据库设计不佳:具有数百万条记录的表根本没有索引。所以,由于它不是重要的数据,我决定如果花费太多时间,我会丢弃它继续前进
-
你也可以调用一个bat文件来执行这个包。这可以在自己的进程中异步运行 - 所以只需启动它并让它在包的其余部分执行时运行。
-
再次感谢,但真正的问题是:如果我设置了 commandtimeout 属性,为什么任务不会停止?在尝试您建议的这些解决方法之前,我想知道我的设置有什么问题..
-
因为 commandtimeout 只控制包等待源命令返回结果的时间。它没有说明通过其余数据流处理这些结果需要多长时间。
标签: ssis