2014-11-05 63 views
0

我有一个数据流任务,它使用OLE源并将数据流入OLE目标。这两项任务之间没有查找或其他处理。SSIS在预执行时挂起-50%完整的sql命令

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

当我使用下面的查询为“SQL命令”的SSIS执行挂起,在“进步:预执行 - 50%的完整的SQL命令”

SET TRANSACTION ISOLATION LEVEL SNAPSHOT 

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

到目前为止,我曾尝试:

  • 两个任务和连接
  • 从查询中删除SET TRANSACTION ISOLATION LEVEL SNAPSHOT启用延迟确认

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

将前100个子句添加到查询中也会使其正常运行,但完整查询仍未能超​​过预执行。源视图大约有2,500,000行,所以我不认为这是ssis无法应付的任何事情。

回答

1

正当我要发布此,我发现(我是不耐烦!)

的查询需要很长时间才能返回任何数据行,所以它实际上似乎已经挂在“预问题-execute“,实际上它已经将查询发送到源系统,并且正在等待数据被返回。一旦数据回来,它突然将自己标记为正在执行,并正在将源任务正确显示为正在执行。