У меня есть абсолютно массовое использование памяти с использованием этого кода. Не могли бы вы рассказать мне, где я ошибаюсь? Я добавляю около 50 тыс. Записей в эту базу данных (я знаю, что это немного больше для SQL Server CE), но это не должно происходить так часто. Любая помощь приветствуется.SQL Server CE - использование больших объемов памяти - массовая установка строк
public static void AddRow(uint id, string name, uint zone, uint map, string state,
string type, float x, float y, float z, DataBaseType dbtype)
{
string db = null;
string table = null;
DateTime dateTime = DateTime.Now.Date;
using (var con = new SqlCeConnection(connStr))
{
using (
var cmd =
new SqlCeCommand(
"INSERT INTO " + table + "(Id, Name, Zone, Map, State, Type, X, Y, Z, Create_Date, Update_Date) " +
"VALUES (@Id, @Name, @Zone, @Map, @State, @Type, @X, @Y, @Z, @Create_Date, @Update_Date)", con))
{
cmd.CommandType = CommandType.Text;
cmd.Parameters.AddWithValue("@Id", id);
cmd.Parameters.AddWithValue("@Name", name);
cmd.Parameters.AddWithValue("@Zone", zone);
cmd.Parameters.AddWithValue("@Map", map);
cmd.Parameters.AddWithValue("@State", state);
cmd.Parameters.AddWithValue("@Type", type);
cmd.Parameters.AddWithValue("@X", x);
cmd.Parameters.AddWithValue("@Y", y);
cmd.Parameters.AddWithValue("@Z", z);
cmd.Parameters.AddWithValue("@Create_Date", dateTime);
cmd.Parameters.AddWithValue("@Update_Date", dateTime);
con.Open();
try
{
cmd.ExecuteNonQuery();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
BotControl.StopBot();
}
finally
{
cmd.Dispose();
}
}
con.Close();
con.Dispose();
}
}
Как вы _know_ у вас есть утечка памяти? –
Ну, программа, в которой он находится, обычно составляет около 200-300 мг. Когда я запускаю это, он растет экспоненциально. Он превысил 1,5 г памяти, прежде чем я его убил. –
Используйте уже открытое соединение вместо открытия 50k раз – ErikEJ