当我运行 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
有人可以帮我解决这个例外吗?