事务(DbTransaction):
sqlite 缺省为每个操作启动一个事务,所以成批插入的时候,启动事务,比不启动事务快n倍。
在没启动事务之前往sqlite数据库里插入1000多条数据的情况,结果每次都需要一两分钟才能完成.
而在启动事物以后所需要的时间直接变成不到2秒!原来sqlite花两分钟是由于ExecuteNonQuery方法执行时自己提交了更新事务,默认执行更新操作是会自动提交事务的,也就是说默认情况下一条sql语句就是一个事务,如果不明白可以去看事务的隔离级别。
更改后的代码把所有的更新sql放在一个事务中,只有执行到Commit方法时才提交事务。与数据库通信的内容两次完成的,但旧的方法进行了100000次通信,而新方法只进行一次通信,时间的差别就出来了。
原文链接:https://www.f2er.com/sqlite/201113.html