我有一个数据流任务,它使用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无法应付的任何内容。
答案 0 :(得分:3)
正如我即将发布的那样,我发现了问题(我不耐烦了!)
查询需要很长时间才能返回任何数据行,因此它实际上似乎已挂起"预执行",实际上它已经将查询发送到源系统并正在等待返回数据。一旦数据回来,它突然标记为正在执行,并正确地显示源任务正在进行中。