在sqlite中使用数据集

时间:2016-04-27 14:14:24

标签: sqlite

我最近编写了一个程序,每天可以在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的速度?

1 个答案:

答案 0 :(得分:0)

您应该只添加一次参数。然后在每个插入上,只需为现有参数赋值,并调用ExcecuteNonQuery。

使用交易也可以提高效果。

所以你的流程看起来应该更像:

  1. 打开连接
  2. 开始交易
  3. 创建命令,设置命令文本和创建参数。
  4. 对于每次插入/更新,为参数赋值并调用ExcecuteNonQuery。
  5. 提交转换
  6. 关闭连接
相关问题