[问题] Sqlite不同Process能同时写入吗?

楼主: james999 (无伤大雅)   2019-08-10 15:07:18
最近用C#在编写Sqlite的小程式,
操作只有写入。
有用到Transaction,但因为资料庞大,
希望开启相同的程式对另外的资料做写入,
可是只有第一个开启db的程式能写入,
第二支程式显示错误是“database is locked.”
请问有解决的方法吗? 谢谢。
函式库是用System.Data.Sqlite
作者: ssccg (23)   2019-08-10 16:08:00
https://sqlite.org/faq.html#q5 同时只能一个写入
作者: feeya (24 August 升格为乡民)   2019-08-10 16:09:00
SQLite可以同时读取 无法同时写入 这是SQLite本身限制
作者: ssccg (23)   2019-08-10 16:12:00
基本上开多个程式去写入同一个档案并不会提升效能你要做的是把Transaction(File lock)范围缩小,只有真的要写入时才lock,其他处理尽量平行化才有用,不是弄同时写入
作者: jass970991 (半糖绿假面超人)   2019-08-10 22:48:00
不考虑batch写入吗?
作者: name2name2 (yang~hi)   2019-08-18 14:16:00
insert要快 可以查BulkInsert例如说这篇 http://bit.ly/2TFt7dv

Links booklink

Contact Us: admin [ a t ] ucptt.com