[英]how to create an update transaction in sqlite using c#
我从这个问题开始: 如何使用SQLite-net在SQLite中插入和更新
但是,它花费的时间比应该花费的时间长得多。 这在答案/评论中指出:
谢谢,看起来好像正在工作...但是非常非常慢...要复制到数据库中的32,000条记录大约需要3-4分钟。 它只有3列...奇怪为什么这么慢? – Tommix '11 Nov 27'在12:30
尝试在事务中进行更新; 如果没有显式事务,SQLite将为每个插入隐式创建一个事务,这对于大量插入而言非常慢。 另外,32k记录相当大,也许您应该尝试以较小的批量进行记录。 – Thomas Levesque 2011年11月27日17:38
这是我用来从MS SQL创建的数据表更新本地SQLite DB的代码。 如何在交易中做到这一点?
SQLiteDataAdapter dataUpdate = new SQLiteDataAdapter("SELECT * FROM ItemMaster", sqLiteconnection);
var cmdBuilder = new SQLiteCommandBuilder(dataUpdate);
dataUpdate.Update(dataInsertStagingTable);
mConnect.Close();
sqLiteconnection.Close();
看来我想通了,发现这不是我的主要问题。 主要问题是参数化插入语句。 我也将其包装在交易中。 这个问题可以按照回答关闭。
using (SQLiteTransaction tran = sqLiteconnection.BeginTransaction())
{
<for loop inserts here>
tran.Commit();
}
sqLiteconnection.Close();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.