背景:
在初始化数据库时,需要批量写数据到数据库中。通过性能分析工具发现,在执行插入数据命令时,其性能消耗超出预期。
解决:
大批量写入sqlite数据库时,前后要加上这段代码,因为sqlite有针对这类事务操作优化
sqliteCommandsqlComm;
sqlComm=newsqliteCommand("begin",dbcon);
sqlComm.ExecuteNonQuery();
//循环批量写入
//...
sqlComm=newsqliteCommand("end",dbcon);
sqlComm.ExecuteNonQuery();
sqliteCommandsqlComm;
sqlComm=newsqliteCommand("begin",dbcon);
sqlComm.ExecuteNonQuery();
//循环批量写入
//...
sqlComm=newsqliteCommand("end",dbcon);
sqlComm.ExecuteNonQuery();
备注:
需要了解的是,begin会产生新的事务,如果当前程序代码已开始事务的情况下,会产生冲突。