SQlite DB 10w级插入数据慢, 请教如何优化

SQlite DB 10w级插入数据慢, 请问怎么优化
问题是这样的, 我们现在是用Sqlite DB 存储一部分数据, 插入的地方已经开启了事务, 
每次插入100条数据(有打算改成1000或者更高, 但是由于是并发执行, 对于内存可能有点小问题, 但是问题应该不大, 客户的环境基本是16g内存起步),
当数据总量到达10w级时, 插入时间从最开始的100级毫秒单位变成了10000级毫秒单位, 最后每次插入100条数据甚至会需要20秒
请问这块有什么办法进行优化吗, 各种感谢.
急求.

------解决思路----------------------
我经常举得例子就是
进程是公司,线程是职员,主线程是领导

比如一个打印图纸的任务,只让一个人去干,可能需要半个小时
如果你有2台打印机,那么让2个人把图纸分配分配,分别同时在2台打印机上打印,那么可能会缩短一半的时间
如果有4台打印机,那么你可以让4个人在4台电脑上操作

当然如果员工手法够快,可能让2个人操作4台打印机也是可以的

但是如果你只有2台打印机,却找100个人分别在100台电脑上用这2台打印机打印
那么之前打印一份图纸需要10秒钟,现在打印一份图纸可不知道要排队多久才能打出来
------解决思路----------------------
1.wcf改成socket,如果是局域网,还可以用namedpipe,并且采用binarySeriliaze
2.control(服务端)不要一收到数据就写数据库,而是设置一个“缓冲区”,比如暂存1000条(10次数据),然后再写入
具体多少条需要测试来确定
------解决思路----------------------
sqlite 是数据库锁的,多线程查询和更新都没有任何效果。它的事务很慢,所以你应该在一个“大的”事务中去操作插入,一次插入许多行,而不是小的事务。注意不是说“不要事务”,因为不要事务就等于每一行插入操作都自动使用一个事务,显然是最慢的。

你所谓的“插入时间从最开始的100级毫秒单位”是指插入100条数据需要100毫秒吗?如果你是指“一条数据”,那么一定是事务的粒度太小了(不使用事务,就等于每一条语句都使用事务,因此不使用事务时一定是最慢的)。Sqlite 每秒插入2000条记录应该毫无问题。

quote=引用:]
引用:
有办法,办法就是不用sqlite


还有啥轻量级的免费DB 可以代替SQlite 吗SQlite DB 10w级插入数据慢, 请教如何优化

可以使用 Sql Server Compact。
------解决思路----------------------
Sqlite 每秒插入2000条记录应该毫无问题  -->   Sqlite 每秒插入20000条记录应该毫无问题

如果记录的索引并不复杂,数据类型也不复杂,Sqlite 的插入速度可以比操作 SQL Server 快10倍。