0

Xamarin Android アプリ内に SQLITE データベースがあり、さまざまなスレッドやプロセスから同時に読み書きできる必要があります。だから私は今それをWALモードで使おうとしています。それはほとんど正常に動作します。以前経験した SQLITE_BUSY エラーが発生しなくなりました。

問題は、このデータベースをデバイスから (つまり、電子メールで送信して) 取り出せるようにしたいということです。できれば 1 つのファイルで。

WAL モードでは、x.db3-wal および x.db3-shm と一緒にメイン データベース ファイル x.db3 がありますが、この目的には十分ではありません。pragma checkpoint(passive)したがって、挿入、更新、または削除の各操作の後に実行して、データベースが実際にはほとんど常に 1 つのファイルから構成されるようにするという考えがありました。私の場合、更新はめったに行われないため、パフォーマンスへの影響はおそらく問題になりません。チェックポイント中にリーダーがデータを読み取ることができず、処理できることを理解しています。しかし、とにかく私の直感では、これは WAL ロギングを使用する正しい方法ではないことがわかり、それが私が尋ねている理由です。私には虐待のように「見えます」。

このアプローチで遭遇する可能性のある問題についてのアイデアをいただければ幸いです。

4

0 に答える 0