我在将数据填充到数据集中时出现此错误
try
{
cnn.Open();
SqlCommand cmd = new SqlCommand(temp, cnn);
cmd.CommandTimeout = 999600000;
cmd.CommandType = CommandType.Text;
cmd.ExecuteNonQuery();
DataSet ds = new DataSet();
SqlDataAdapter dscmd = new SqlDataAdapter(cmd);
dscmd.Fill(ds);
dt = ds.Tables[0];
}
SQL查询包含80000条记录。
由于内存使用过多,会话已终止。尝试 修改查询以处理更少的行。发生严重错误 当前命令。结果(如果有的话)应该被丢弃。
答案 0 :(得分:1)
这是一个SQL azure保护机制(特别是错误40553),与调用C#/ .NET / ADO.NET无关。解决这个问题的唯一方法是通过处理更少的数据来使SQL azure满意,或者至少以一种令人满意的方式来实现它。如果没有sql命令(temp
)的可见性,我们就无法在这里提供。
另见Dipping My Toes Into SQL Azure – Part 2 – Protection Mechanisms。
减少Transact-SQL代码中的ORDER BY和GROUP BY操作数有助于减少查询的内存需求。