У меня простая база данных sqlite с только одной таблицей и 7-8 строковыми полями с ~ 2.000.000 записями. Файл базы данных на диске составляет около 450-500 мб ...Использование памяти SQLIte в C#
Когда я открываю файл db в своем приложении C# и выполняю простой запрос «select * from tbl», использование памяти компьютера составляет 3gb.
Вот код, я использую для выбора данных из базы данных:
DataSet ds = new DataSet();
dataGridView1.DataSource = null;
string s = Cstr();
try
{
SQLiteConnection conn = new SQLiteConnection(s);
SQLiteCommand command = new SQLiteCommand(conn);
command.CommandText = "select * from log;";
conn.Open();
command.ExecuteReader();
var da = new SQLiteDataAdapter(command.CommandText, conn);
da.Fill(ds);
dataGridView1.DataSource = ds.Tables[0];
conn.Close();
GC.Collect();
}
catch (Exception)
{
}
Я попробовал то же самое с MySQL5 дб и использованием памяти нормально для базы данных такого размера. Редактировать: Я попытался загрузить ту же базу данных sqlite с помощью Delphi XE5 и использует только ~ 600 МБ памяти.
Есть ли способ избежать этого?
хорошо у вас есть точка. относительно размера самого файла SqlLite его достаточно большого и необходимо полностью загрузить в память (я не уверен), но одно странное - почему его компьютер достигает загрузки 3 ГБ памяти? это действительно странно. Я попробовал себя сейчас на пустом проекте C# .NET 4.0, читающем старый файл SQLlite объемом 1,2 ГБ. в моей памяти компьютера он потребляет всего ~ 80 МБ –