SSIS 2012包随机挂起

问题描述 投票:0回答:1

最初,软件包位于软件包部署模型(SSIS 2008)中,该模型将数据从本地数据库并行导出到本地CSV文件。

我已经将它转换为项目部署模型,现在存在相同的并行性,但是通过执行包任务(之前是通过执行流程任务)调用子包(使用26个线程),使用Execute-Of-Process-in-为了利用资源

子包从15K客户中挑选一个随机客户,并将其相关数据从视图导出到CSV文件。

<>将客户放在一个表中,所有线程都读取表,并使用TABLOCKX在其上应用互斥锁,无论哪个线程首先获取写访问权限,都会接收客户并将负载状态修改为“进度”。等待写访问的其他线程将遵循相同的过程。

使用“Forloop”容器为所有客户重复每个线程中的进程

对于576次执行,它出口良好而且很快,但令人惊讶的是它在随机客户的第576次执行中挂了几分钟。我试过多次重复它,它在同一点上挂起。

非常感谢您对此的帮助!

PS:我的软件包的早期版本中没有问题

sql sql-server ssis ssis-2012
1个回答
0
投票

SSIS 2012中存在一个错误,因为我的迁移程序包挂起。

一次执行时包含多个子包的SSIS包会在内部Catalog表中创建死锁。因此应该避免运行具有多个并行线程的子包。如果需要,以几毫秒的延迟(> 100毫秒)运行它们。

添加延迟解决了问题。希望Microsoft在更高版本的SSIS中解决此错误

© www.soinside.com 2019 - 2024. All rights reserved.