0

当我运行 SSIS 包时,一些数据流任务会抛出异常System.OutOfMemoryException。我在数据流任务中使用脚本组件。这个脚本组件执行查询,从源数据库获取数据,这个数据大约 1,5GB,我把这个数据保存在 DataSet 中。脚本组件 PreExecute 方法中的数据流任务失败。这是我的代码块;

 public override void PreExecute()
{
    base.PreExecute();


    connStr = this.Variables.DestinationConnectionString.ToString();
    //cmParams = this.Connections.DestinationConnection;
    conn = new OleDbConnection(connStr.ToString());
    conn.Open();

    tableAdapter = new OleDbDataAdapter("SELECT ID,OLD_ID FROM ADDRESS WHERE OLD_ID IS NOT NULL AND TENANTID=" + this.Variables.TenantID.ToString(), conn);
    tableDataSet = new DataSet();
    tableDataSet1 = new DataSet();
    tableDataSet2 = new DataSet();
    tableAdapter.Fill(tableDataSet, "Table");
    tableAdapter1 = new OleDbDataAdapter("SELECT ID,OLD_ID FROM COMPANY WHERE OLD_ID IS NOT NULL AND TENANTID=" + this.Variables.TenantID.ToString(), conn);
    tableAdapter1.Fill(tableDataSet1, "Table1");
    tableAdapter2 = new OleDbDataAdapter("SELECT ID,OLD_ID FROM ENTITY WHERE OLD_ID IS NOT NULL AND TENANTID=" + this.Variables.TenantID.ToString(), conn);
    tableAdapter2.Fill(tableDataSet2, "Table2");

}

错误屏幕在这里

任务管理器屏幕在这里

我的包大小是 4069KB。
数据流任务最大缓冲区大小:20MB
数据流任务最大缓冲区最大行数:10000

有人可以帮我解决这个例外吗?

4

0 回答 0