Windows 7 PRO と 64 GB の RAM を搭載した SQL Server 2012 Developer エディションを実行しています。
多くのインメモリ リクエストを実行すると、System.OutOfMemoryException がスローされます。
SQL がより多くの物理 RAM を使用できるようにする簡単な修正方法はありますか?
コード:
// int count = MAX_BARS_IN_MEMORY / tf.timeperiod + 1;
hCommandBars.CommandText = String.Format(@"SELECT top " + MAX_BARS_IN_MEMORY + " * FROM {0} WHERE {0}.timeperiod = " + tf.timeperiod + " ORDER BY {0}.bartime desc", tableName);
barTimesAdapter = new SqlDataAdapter(hCommandBars);
barTimesAdapter.Fill(dTimeset);
foreach (DataTable table in dTimeset.Tables)
{
if (table.Rows.Count > 0)
{
foreach (DataRow row in table.Rows)
{
InMemoryTable inMemorytable = new InMemoryTable();
inMemorytable.BarTime = Convert.ToDateTime((row["bartime"].ToString()));
inMemorytable.High = Convert.ToDouble(row["high"].ToString());
inMemorytable.Low = Convert.ToDouble(row["low"].ToString());
inMemorytable.Open = Convert.ToDouble(row["open"].ToString());
inMemorytable.Close = Convert.ToDouble(row["close"].ToString());
inMemorytable.C1 = Convert.ToDouble(row["c1"].ToString());
inMemorytable.C2 = Convert.ToDouble(row["c2"].ToString());
inMemorytable.SNR2 = false;
inMemorytable.Symbol = symbol.Key;//symbol name
inMemorytable.TimePeriod = Convert.ToInt32(row["timeperiod"].ToString());
_SessAndBarTableList.Add(inMemorytable);
}
}
}
dTimeset.AcceptChanges();
dTimeset.Clear();
}
hConnectionBars.Close();
hConnectionBars.Dispose();
hConnectionBars = null;
//});
}
_SessAndBarTableList = _SessAndBarTableList.OrderBy(x => x.BarTime).ToList();
_1MinuteTableList = _1MinuteTableList.OrderBy(x => x.BarTime).ToList();
}