目前,我试图填补数以千使用这种这种方法数千文本数据的SQLite数据库:如何离线存储大量数据,然后将其批量更新到SQLite数据库中?
SQLiteConnection = new SQLiteConnection(cntnStr);
connection.Open();
foreach(Page p in pages)
{
using (SQLiteCommand command = new SQLiteCommand(String.Format("Insert Into Pages (ID, Data, Name) Values ({0}, '{1}', '{2}')", id, p.Data, p.Name), connection))
command.ExecuteNonQuery();
}
不过,我怀疑,这样做每秒约10次的可能拖慢整个过程。有没有一种方法可以整理内存中的数据,然后每批添加5000条记录到数据库中(所以速度更快)?
编辑:超级重要:请确保您执行DbTransaction
内所有的SQL命令 - 在这种情况下,SQLiteTransaction
:
SQLiteTransaction trans = connection.BeginTransaction();
// SQL centric code - repeated inserts/changes
trans.Commit(); // adds your changes
它通过1000倍的提高性能。
你能帮我解决吗? – 2009-08-22 16:18:18
啊,我在这里找到了答案:http://codebetter.com/blogs/david.hayden/archive/2006/01/05/136264.aspx – 2009-08-22 16:21:14
查看我的更新回答 – 2009-08-22 16:27:52