SSIS C# 脚本任务在大约 250MB 内存使用量左右失败

本文关键字:内存 250MB 使用量 左右 失败 脚本 任务 SSIS | 更新日期: 2023-09-27 18:31:22

我有一个SSIS包,它只是运行一个SSIS脚本任务(不是由我编写的)。然后,此脚本动态创建包并以线程方式运行它们,管理活动线程数。这是使用 SQL 代理启动的。这是从Attunity源抓取数据,而不是11g Oracle DB。

当我在任务管理器中观察该过程时,我看到 DTexec.exe正在慢慢消耗越来越多的内存。 当它达到大约 250MB 时,它会失败。它通常每次都返回不同的错误,有时甚至显示为来自 SQL 代理的取消请求。

我减少了最大内存以给操作系统提供更多内存,但没有工作。

它不应该是一个memToLeave问题,因为它是64位的。我试过通过命令行运行,什么都没有。

视窗服务器 2003SQL 2008R2

我遇到了

很多麻烦,并尝试了我在网上能找到的所有东西。有人有什么想法吗?我确定我在这里遗漏了一些东西,所以问,我会为你找到答案。

SSIS C# 脚本任务在大约 250MB 内存使用量左右失败

所以,我想通了。

编写 C# 的方式没有显式销毁正在创建的线程的机制,但是这在以前从未成为问题的原因是脚本任务在 SSIS 包内创建 DLL。我的环境默认具有 32 位运行时,并按此构建它。如果 SSIS 包是在 32 位模式下构建的,则其硬 RAM 限制为 256MB,64 位没有此类限制。那我该怎么办呢?

在服务器本身的 Visual Studio 中打开包,然后保存它。这会强制它以 64 位模式重新编译(如果它是该服务器上的默认运行时)。