作者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://www.ptt.cc/bbs/C_Sharp/M.1565420840.A.F40.html
※ 編輯: james999 (36.230.201.157 臺灣), 08/10/2019 15:40:05
→ feeya: SQLite可以同時讀取 無法同時寫入 這是SQLite本身限制 08/10 16:09
→ ssccg: 基本上開多個程式去寫入同一個檔案並不會提升效能 08/10 16:12
→ ssccg: 你要做的是把Transaction(File lock)範圍縮小,只有真的要 08/10 16:12
→ ssccg: 寫入時才lock,其他處理盡量平行化才有用,不是弄同時寫入 08/10 16:13
推 jass970991: 不考慮batch寫入嗎? 08/10 22:48
推 name2name2: insert要快 可以查BulkInsert 08/18 14:16