我最近阅读了有关SQLite的文章,并认为可以尝试一下。当我插入一条记录时,它执行得很好。但是,当我插入一百时,它需要五秒钟,并且随着记录数的增加,时间也会增加。有什么事吗 我正在使用SQLite包装器(system.data.SQlite):dbcon = new SQLiteConnection(connectionString);dbcon.Open();//---INSIDE LOOP SQLiteCommand sqlComm = new SQLiteCommand(sqlQuery, dbcon); nRowUpdatedCount = sqlComm.ExecuteNonQuery(); //---END LOOPdbcon.close();
3 回答
函数式编程
TA贡献1807条经验 获得超9个赞
我到处都读到创建事务是降低SQLite写入速度的解决方案,但是重写代码并将所有SQLite写入包装在事务中可能很长且很痛苦。
我发现了一种更简单,安全且非常有效的方法:我启用了(默认情况下禁用)SQLite 3.7.0优化:预写日志(WAL)。该文档说它可以在所有的Unix(即Linux和OSX)和Windows系统中使用。
怎么样 ?初始化SQLite连接后,只需运行以下命令:
PRAGMA journal_mode = WAL
PRAGMA synchronous = NORMAL
我的代码现在运行速度提高了约600%:我的测试套件现在运行了38秒,而不是4分钟:)
- 3 回答
- 0 关注
- 667 浏览
添加回答
举报
0/150
提交
取消