SSIS挂起在Pre-Execute - 50%完整的sql命令

时间:2014-11-05 10:24:23

标签: sql-server ssis sql-server-2012

我有一个数据流任务,它使用OLE源并将数据流入OLE目标。两个任务之间没有查找或其他处理。

当我告诉源使用表源时,查询工作正常,但由于源表上的锁定,速度非常慢。

当我使用以下查询作为“sql命令”时,ssis执行挂起在“Progress:Pre-Execute - 50%complete sql command”

SET TRANSACTION ISOLATION LEVEL SNAPSHOT

SELECT   [col1],[col2]
from [SourceSystemView]

到目前为止,我已经尝试过:

  • 在任务和连接上启用延迟验证
  • 从查询中删除SET TRANSACTION ISOLATION LEVEL SNAPSHOT

通过ssms对源系统执行文本查询工作正常。

在查询中添加前100个子句会导致它运行正常,但完整查询仍然无法通过预执行。源视图有大约2,500,000行,所以我不认为这是ssis无法应付的任何内容。

1 个答案:

答案 0 :(得分:3)

正如我即将发布的那样,我发现了问题(我不耐烦了!)

查询需要很长时间才能返回任何数据行,因此它实际上似乎已挂起"预执行",实际上它已经将查询发送到源系统并正在等待返回数据。一旦数据回来,它突然标记为正在执行,并正确地显示源任务正在进行中。