最近、私はSQLiteのディスクI/Oエラー-45 GBのデータベース
disk I/O error
at Finisar.SQLite.sqlite3.Throw()
at Finisar.SQLite.sqlite3.exec(String sql)
at Finisar.SQLite.SQLiteTransaction.CommitOrRollback(Boolean commit)
に遭遇するまで、私はどこローカルドライブに十分なスペースがある何の問題もなく私のデータを保存するために、今しばらくの間、SQLiteのDBを使用していますSQLite dbは後退します。私はトランザクションでインサートを実行しています。私はsqlite dbが45GBのサイズに達してから壊れている可能性があると思っていましたが、問題なくSQLite DB Viewerでdbを開くことができました。このエラーはクライアントマシンで発生しており、開発環境でこれを再現することはできません。この時点で、私はこのエラーがなぜ起こっているのかについての手がかりはありません。 単一の "SQLiteConnection"インスタンスを使用して45Gbのデータを挿入すると、このような問題が発生する可能性がありますか?
私はちょうど最初に接続を開き、すべての私の挿入が最後に完了したときに一度閉じます。
私は本当にここの専門家からの助けに感謝します。
ありがとうございます。
45 GBは実際にSQLiteの限界を超えています。そのようなスケールを扱うように設計されたMySQLまたは別のオプションに移動してみませんか? –
また、ディスクI/Oエラーがハードウェアの問題を示している可能性があります。あなたはディスク自体をチェックしましたか? –
また、一度に45GB *を挿入すると、あなたのように聞こえますが、ページングの問題のようなOSレベルを含む他の問題がある可能性があります。 –