作者james999 (无伤大雅)
看板C_Sharp
标题[问题] Sqlite不同Process能同时写入吗?
时间Sat Aug 10 15:07:18 2019
最近用C#在编写Sqlite的小程式,
操作只有写入。
有用到Transaction,但因为资料庞大,
希望开启相同的程式对另外的资料做写入,
可是只有第一个开启db的程式能写入,
第二支程式显示错误是「database is locked.」
请问有解决的方法吗? 谢谢。
函式库是用System.Data.Sqlite
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 36.230.201.157 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/C_Sharp/M.1565420840.A.F40.html
※ 编辑: james999 (36.230.201.157 台湾), 08/10/2019 15:40:05
2F:→ feeya: SQLite可以同时读取 无法同时写入 这是SQLite本身限制 08/10 16:09
3F:→ ssccg: 基本上开多个程式去写入同一个档案并不会提升效能 08/10 16:12
4F:→ ssccg: 你要做的是把Transaction(File lock)范围缩小,只有真的要 08/10 16:12
5F:→ ssccg: 写入时才lock,其他处理尽量平行化才有用,不是弄同时写入 08/10 16:13
6F:推 jass970991: 不考虑batch写入吗? 08/10 22:48
7F:推 name2name2: insert要快 可以查BulkInsert 08/18 14:16