Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server SSIS包中的数据流任务被无限期卡住_Sql Server_Ssis_Etl_Ssis 2012 - Fatal编程技术网

Sql server SSIS包中的数据流任务被无限期卡住

Sql server SSIS包中的数据流任务被无限期卡住,sql-server,ssis,etl,ssis-2012,Sql Server,Ssis,Etl,Ssis 2012,我们使用SQL Server 2012和SSDT 2010进行SSIS包的开发和调试 我有一个简单的数据流任务,其中只有两个组件—OLEDB源和OLEDB目标。目标表存储多个日期的数据,并从源表以增量方式加载,即,每当源表接收到具有新日期的数据时,都会将其加载到目标表中。数据流上没有应用转换、计算或逻辑 源OLE DB使用以下查询从源中选择数据- 从日期列不在的源表格中选择* 从目标表格中选择不同的日期列 在OLE DB目标页面中,它被设置为快速加载,并且表锁选项也未选中 每当我们从SSDT执行

我们使用SQL Server 2012和SSDT 2010进行SSIS包的开发和调试

我有一个简单的数据流任务,其中只有两个组件—OLEDB源和OLEDB目标。目标表存储多个日期的数据,并从源表以增量方式加载,即,每当源表接收到具有新日期的数据时,都会将其加载到目标表中。数据流上没有应用转换、计算或逻辑

源OLE DB使用以下查询从源中选择数据- 从日期列不在的源表格中选择* 从目标表格中选择不同的日期列

在OLE DB目标页面中,它被设置为快速加载,并且表锁选项也未选中

每当我们从SSDT执行包时,它只显示数据流路径中的一些行作为处理,并进入永无止境的阶段。这个数字不会增长,直到强制停止,包裹才会结束


提前感谢。

尝试用左连接替换子查询,如下所示:

SELECT a.* FROM source_table a
left join target_table b
on a. date_col=b.date_col where b.date_col is null 

Hi@Abhishek看一看,如果你仍然面临问题,你能分享屏幕截图吗。你的数据流应该使用查找来完成你在WHERE子句中想要的内容。查找将带来更多的性能问题。您的第一个任务是在SSMS中运行查询,并查看它需要多长时间。然后,我建议您使用EXISTS而不是in,并查看性能是否有所提高hi@Nick.McDermaid,我尝试在SSMS中运行我的原始查询,它在一分钟内给出了结果。我还尝试在SSMS中使用EXISTS子句,它比以前更快地给出结果。但是SSIS包没有通过。我相信在OLE DB destination中的Table-fast load中提供的各种选项存在一些问题。我试着调整每批的行数和最大插入提交大小,但没有任何帮助。也许你有一个锁定问题。在目标数据库中使用spWhoIsActive查看它是否被锁定。使用exist可能更好。我尝试使用左连接,并且两者都存在。exists在SSMS中给出的结果更快。但我认为问题出在SSIS包的某个地方。当我从SSDT以调试模式运行包时,数据流记录不会增长。这里也有同样的问题,您找到答案了吗?