我正在开发一款桌面应用程序,使用SQLite批量插入成千上万行数据到SQLite数据库中,现在需要优化批量插入的性能。目前在数据库中插入60MB的数据需要长达50秒。
有哪些连接字符串参数可以用来提高性能?是否应该更改缓冲区大小?这是否可以通过连接字符串参数实现?还有其他的连接字符串参数可以提高性能吗?我当前的连接字符串是:
Data Source=Batch.db;Version=3;Pooling=True;Max Pool Size=10;Synchronous=off;FailIfMissing=True;Journal Mode=Off;
我正在使用Dapper ORM(由StackOverflow的团队构建)。在.NET中,是否有更快的方法可以进行SQLite批量插入?
正在使用System.Data.Sqlite插入SQLite。获取一个特殊编译版本的SQLite以提高性能如何?是否有一个比另一个更好的SQLite版本?目前使用 http://sqlite.phxsoftware.com 的 System.Data.SQLite
目前,我将插入操作包装在事务中以提高速度(这使得性能得到了很大的提升)。
我将数据插入到17个表中的一个表中。是否可以在不同线程上并行化此过程以提高速度?
当前性能。 这是典型的吗?我能做得更好吗?
- 在具有19个列的表中插入55,000行数据:2.25秒(24k次/秒)
- 在具有63个列的表中插入10,000行数据:2.74秒(3.7k次/秒)
我喜欢SQLite,但我希望它能更快一些。目前,将我的对象保存到使用XML序列化的XML文件中比保存到SQLite数据库中要快,所以我的老板问:为什么要切换到SQLite?或者我应该使用MongoDB或其他对象数据库吗?
PRAGMA
并使用事务。不过,这如何映射到ORM,我不知道。 - Chris J