目前,我正在尝试使用这种方法用数以万计的文本数据填充 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
超级重要:确保在 a - 在这种情况下为a 执行所有 SQL 命令SQLiteTransaction
:
SQLiteTransaction trans = connection.BeginTransaction();
// SQL centric code - repeated inserts/changes
trans.Commit(); // adds your changes
它将性能提高了 1000 倍。