[問題] 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