c# - SQLite Insert 很慢?

标签 c# sqlite system.data.sqlite

我最近阅读了有关 SQLite 的内容,并想尝试一下。当我插入一条记录时,它执行正常。但是当我插入 100 时需要五秒钟,并且随着记录数的增加,时间也会增加。有什么问题吗?我正在使用 SQLite Wrapper (system.data.SQlite):

dbcon = new SQLiteConnection(connectionString);
dbcon.Open();

//---INSIDE LOOP

 SQLiteCommand sqlComm = new SQLiteCommand(sqlQuery, dbcon);

 nRowUpdatedCount = sqlComm.ExecuteNonQuery(); 

//---END LOOP

dbcon.close();

最佳答案

BEGIN\END 语句包裹在您的批量插入中。 Sqlite 针对事务进行了优化。

dbcon = new SQLiteConnection(connectionString);
dbcon.Open();

SQLiteCommand sqlComm;
sqlComm = new SQLiteCommand("begin", dbcon);
sqlComm.ExecuteNonQuery(); 
//---INSIDE LOOP

 sqlComm = new SQLiteCommand(sqlQuery, dbcon);

 nRowUpdatedCount = sqlComm.ExecuteNonQuery(); 

//---END LOOP
sqlComm = new SQLiteCommand("end", dbcon);
sqlComm.ExecuteNonQuery(); 
dbcon.close();

关于c# - SQLite Insert 很慢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3852068/

相关文章:

c# - 使用 iTextSharp 将句子中的单个单词加粗

c# - 字典的匿名集合初始值设定项

c# - 匹配字符串的开头或结尾 - 但只指定一次模式

iphone - 更新应用程序时数据库更新的最佳策略

python - 我如何在 sqlite3 中搜索字符串的一部分?

c# - 声明变量只是为了使代码易于阅读,编程最佳实践 C#

sql - R:粘贴中的双引号,如何消除反冲

c# - 显示 FolderBrowserDialog 后 SQLite 中的 EntryPointNotFoundException

.net - 如何知道 System.Data.Sqlite 对象何时/什么异常被抛出?

vb.net - System.data.sqlite - 激活 WAL 日志模式