我有一個簡單的sqlite數據庫只有一個表和7-8字符串字段與〜2.000.000記錄。磁盤上的數據庫文件是關於450-500mb ...SQLIte內存使用C#
當我打開我的C#應用程序數據庫文件和執行簡單的「從TBL SELECT *」查詢,計算機內存使用去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數據庫和內存使用同樣的事情是正常的,這種規模的數據庫。 編輯: 我試圖加載與Delphi XE5相同的SQLite數據庫,它只使用〜600MB的內存。
有什麼辦法可以避免這種情況?
好吧,你有重點。關於SqlLite文件本身的大小,它非常大,需要完全加載到內存中(我不確定),但有一點奇怪的是他的計算機達到3GB的內存負載的原因?它真的很奇怪。我現在試着用一個空白的C#.NET項目4.0讀取一個1.2GB的舊SQLlite文件。在我的電腦內存中它只消耗〜80MB –