我最近编写了一个程序,每天可以在sqlite中添加或更新20000条记录。通过使用Stopwatch
我意识到所有记录将在大约40分钟内添加到sqlite。
顺便说一下,这是添加记录的代码:
string q = "INSERT INTO " + title + " VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
SQLiteCommand cmd = new SQLiteCommand(q, Assist.con_database);
cmd.Parameters.AddWithValue("@**", null);
cmd.Parameters.AddWithValue("@**", **);
cmd.Parameters.AddWithValue("@**", **);
cmd.Parameters.AddWithValue("@**", **);
cmd.Parameters.AddWithValue("@**", **);
cmd.Parameters.AddWithValue("@**", **);
cmd.Parameters.AddWithValue("@**", **);
cmd.Parameters.AddWithValue("@**", **);
cmd.Parameters.AddWithValue("@**", **);
cmd.Parameters.AddWithValue("@**", **);
cmd.Parameters.AddWithValue("@**", **);
cmd.Parameters.AddWithValue("@**", **);
cmd.Parameters.AddWithValue("@**", **);
cmd.Parameters.AddWithValue("@**", **);
Assist.con_database.Open();
cmd.ExecuteNonQuery();
Assist.con_database.Close();
如何减少时间并提高添加sqlite的速度?
答案 0 :(得分:0)
您应该只添加一次参数。然后在每个插入上,只需为现有参数赋值,并调用ExcecuteNonQuery。
使用交易也可以提高效果。
所以你的流程看起来应该更像: